[Xapian-discuss] Dreaded "Premature end of script headers: omega"...
Jim
jim at fayettedigital.com
Tue May 6 18:38:26 BST 2008
Olly Betts wrote:
> On Mon, May 05, 2008 at 08:57:42PM -0300, Bill Hutten wrote:
>
>> I've (almost) successfully setup Xapian and Omega on a Linux machine -
>> the index has been created successfully, and using omega from the
>> command line works perfectly...
>>
>
> OK, that's good so far.
>
>
>> However - it's not working as a CGI - I consistently get "Premature
>> end of script headers: omega" in the Apache error log.
>>
>
> In case you aren't aware, this generally means "script died before
> writing any output" (strictly speaking, before writing a blank line to
> end the headers, but it's rare to die halfway through the headers for
> a CGI which works elsewhere.
>
>
>> I've placed the "omega" executable in the cgi-bin directory, along
>> with the "omega.conf" file. (Is the .conf file required to be
>> "beside" the omega executable)?
>>
>
> It's not *required* to be there, but that is one of the places it can
> be. For more details, see the "omega configuration" section here:
>
> http://xapian.org/docs/omega/overview.html
>
>
>> I've also checked permissions - my
>> cgi-bin directory is owned by "southshore.psaserv", as is the omega
>> executable and the omega.conf.
>>
>> I'm obviously missing something... anyone care to point it out to me?
>> I've checked the mailing list archives and the only suggestion was to
>> make sure that the permissions on the omega executable matched the
>> permissions on the cgi-bin directory - but they seem to match fine...
>>
>
> You've already ruled out the Omega-specific parts (since Omega runs from
> the command line), so it's really an exercise in generic CGI debugging
> at this point. Unfortunately, this sort of thing isn't easy to debug
> remotely as I don't know anything about how your server is set up.
>
> You need to look at differences between your environment and that
> which the CGI gets run as from the webserver. Environment variables
> are one issue. Another is the user/group which runs CGI scripts.
>
> Some things to check:
>
> * If you're able, try running omega *as the user which runs CGI scripts*
> from your shell (e.g. using su). You'll probably need root access for
> that though.
>
> * Is the omega CGI binary readable and executable by the user which CGI
> scripts run as?
>
> * Did you symlink the omega binary to the CGI directory? Some servers
> don't like symlinked CGI scripts.
>
> * Write a simple CGI script to dump environment variables and put it in
> the same CGI directory as omega, with the same permissions. Assuming
> it runs, compare output with printenv in your shell. Something as
> simple as this will probably do:
>
> #!/bin/sh
> echo "Content-Type: text/plain"
> echo
> printenv
>
> Consider any differences carefully, but one particular thing to looks
> for - Omega should get an rpath set if xapian-core isn't on the
> standard library search path, but if you needed to set LD_LIBRARY_PATH
> for some reason, you'll need to ensure that this is set when it is run.
>
>
It shouldn't cause this error, but you may want to change the name to
omega.cgi and try it. Some apache configurations want cgi scripts to
have the extension cgi.
I had this problem with a Debian install a while back. For some reason
Apache never would actually execute a program. I finally gave up after
a couple of weeks and installed Ubuntu instead.
Jim.
More information about the Xapian-discuss
mailing list