You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Michael Edenfield <ku...@cyber-wizard.com> on 1999/03/24 22:34:23 UTC
mod_cgi/4115: CGI Execs properly from ScriptAlias Directory, Error 500 anywhere else.
>Number: 4115
>Category: mod_cgi
>Synopsis: CGI Execs properly from ScriptAlias Directory, Error 500 anywhere else.
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: apache
>State: open
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Wed Mar 24 13:40:01 PST 1999
>Last-Modified:
>Originator: kutulu@cyber-wizard.com
>Organization:
apache
>Release: 1.3.6
>Environment:
OS: Linux scorpion 2.0.36 #8 Sun Mar 14 17:32:01 EST 1999 i686 unknown
gcc: 2.8.1
libc: glibc2.0.6
>Description:
Attempting to set up cgi-bin directories for each user, I followed the directions in the FAQ. I put these directives into my httpd.conf:
----- Start httpd.conf excerpt -----
ScriptAlias /cgi-bin/ /usr/html/cgi-bin/
<Directory /usr/html/cgi-bin>
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
UserDir public_html
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Options
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>
AddHandler cgi-script .cgi
<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
------ END httpd.conf excerpt -----
The server does execute the file from both the ~user/cgi-bin URL and /cgi-bin URL, but from ~user/cgi-bin it generates the error about "Premature end of script headers", while from /cgi-bin it works correctly. This can be repeated with the test-cgi sh script, the printenv PERL script, and my own test TCL script. I have turned off all output buffering via $| or fconfigure (respectively), and tested from the command line to confirm that
Content-Type: text/html
is in fact printed to stdout.
>How-To-Repeat:
http://www.mcramerica.com/cgi-bin/test.cgi
http://www.mcramerica.com/~kutulu/cgi-bin/test.cgi
http://www.mcramerica.com/kutulu/test.cgi
This is test-cgi, shipped with Apache, renamed to test.cgi, and cp'd into the directories. Both have permissions 0755. The third URL also works, (see below), and is the same physical file (/home/kutulu/public_html/cgi-bin/test.cgi) as the second URL.
>Fix:
Currently, I can fix the problem by using ScriptAlias to define a cgi-bin alias for each user with cgi, as in:
ScriptAlias /kutulu/ /home/kutulu/public_html/cgi-bin/
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, ]
[you need to include <ap...@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED. This is not done]
[automatically because of the potential for mail loops. ]
[If you do not include this Cc, your reply may be ig- ]
[nored unless you are responding to an explicit request ]
[from a developer. ]
[Reply only with text; DO NOT SEND ATTACHMENTS! ]