You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Thad Humphries <th...@gmail.com> on 2012/06/08 04:19:08 UTC

[users@httpd] CGI script is not executed

Re thread #103692

On May 19, 2012, at 3:27 AM, Igor Cicimov <ic...@gmail.com> wrote:

The name should be test.cgi
On May 19, 2012 5:29 PM, "Allen Liu" <al...@gmail.com> wrote:

> Hi experts,
> I just set up my first httpd server 2.4.2. It is a simple setup, I took
> almost everything as default setting.
> After it was started, I tried test-cgi located in cgi-bin directory. The
> issue was that the script didn't run. The browser only displayed the script
> contents. Can anyone help ?
>
> I checked httpd.conf which has
>        ScriptAlias /cgi-bin/  "/usr/local/apache2/cgi-bin/"
>
> Here is the directory permission:
>        drwxr-xr-x  2 root root  4096 May 18 16:55 cgi-bin
> scrip in cgi-bin t:
>        -rwxr-xr-x 1 root     games    1135 May 18 15:35 test-cgi
> I know that httpd runs as user 'demon', but I think the cgi file has 755
> permission, it should have no problem.
>
> Any help is appreciated.
>
> Allen Liu
> allenliu2000@gmail.com
> +1 510 936-0101
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>
>
If you look in apache config file you will find a line like this:

AddHandler cgi-script .cgi .pl

which tells apache to handle the files with .cgi and .pl as cgi scripts.
Without this apache will handle them as default text/html file. So the
script alis is useless without proper handle, it just defines the default
script directory.

Obviously if you want to have some PHP scripts to be handled as cgi by
apache you need to add that new extension to the AddHandler line:

 AddHandler cgi-script .cgi .pl .php

So obviously your file name without extension doesn't match this criteria.

Igor

...................

Igor,

I'm having the same problem as Allen.

I don't understand. Is this necessary for Apache 2.4.2? A designated
extension was/is not a requirement in 1.2, 1.3, 2.0, or 2.2. Do I have to
rename all my CGIs?

And why does apache2/cgi-bin have two files without extensions--printenv
and test-cgi? The former is a perl script, the latter a shell script. The
instructions in these files say only to add the necessary execution
sheebang--#!/usr/bin/perl or #!/usr/bin/sh--and set permissions to 755.
That's all that has been required for in my previous 15+ years with Apache.
However now all I'm getting is the script text. When I go back to Apache
2.22.2, it all works fine.

-- 
"Hell hath no limits, nor is circumscrib'd In one self-place; but where we
are is hell, And where hell is, there must we ever be" --Christopher
Marlowe, *Doctor Faustus* (v, 121-24)

[users@httpd] Re: CGI script is not executed

Posted by Thad Humphries <th...@gmail.com>.
Solved. mod_cgi.so does not built by default on my system (openSUSE 12.1).
When I built Apache 2.2, it was part of the core, not a dynamic module. So
when running configure, add --enable-cgi and uncomment "LoadModule
dir_module modules/mod_cgi.so" in httpd.conf

Alternately, use mod_cgid.so. Per
http://httpd.apache.org/docs/current/mod/mod_cgi.html

"When using a multi-threaded MPM under unix, the module
mod_cgid<http://httpd.apache.org/docs/current/mod/mod_cgid.html>should
be used in place of this module. At the user level, the two modules
are essentially identical"


So, uncomment "LoadModule dir_module modules/mod_cgid.so" in httpd.conf.
Also uncomment "Scriptsock logs/cgisock" in httpd.conf (in the <IfModule
cgid_module> directive).

On Thu, Jun 7, 2012 at 10:19 PM, Thad Humphries <th...@gmail.com>wrote:

> Re thread #103692
>
> On May 19, 2012, at 3:27 AM, Igor Cicimov <ic...@gmail.com> wrote:
>
> The name should be test.cgi
> On May 19, 2012 5:29 PM, "Allen Liu" <al...@gmail.com> wrote:
>
>> Hi experts,
>> I just set up my first httpd server 2.4.2. It is a simple setup, I took
>> almost everything as default setting.
>> After it was started, I tried test-cgi located in cgi-bin directory. The
>> issue was that the script didn't run. The browser only displayed the script
>> contents. Can anyone help ?
>>
>> I checked httpd.conf which has
>>        ScriptAlias /cgi-bin/  "/usr/local/apache2/cgi-bin/"
>>
>> Here is the directory permission:
>>        drwxr-xr-x  2 root root  4096 May 18 16:55 cgi-bin
>> scrip in cgi-bin t:
>>        -rwxr-xr-x 1 root     games    1135 May 18 15:35 test-cgi
>> I know that httpd runs as user 'demon', but I think the cgi file has 755
>> permission, it should have no problem.
>>
>> Any help is appreciated.
>>
>> Allen Liu
>> allenliu2000@gmail.com
>> +1 510 936-0101
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>> For additional commands, e-mail: users-help@httpd.apache.org
>>
>>
> If you look in apache config file you will find a line like this:
>
> AddHandler cgi-script .cgi .pl
>
> which tells apache to handle the files with .cgi and .pl as cgi scripts.
> Without this apache will handle them as default text/html file. So the
> script alis is useless without proper handle, it just defines the default
> script directory.
>
> Obviously if you want to have some PHP scripts to be handled as cgi by
> apache you need to add that new extension to the AddHandler line:
>
>  AddHandler cgi-script .cgi .pl .php
>
> So obviously your file name without extension doesn't match this criteria.
>
> Igor
>
> ...................
>
> Igor,
>
> I'm having the same problem as Allen.
>
> I don't understand. Is this necessary for Apache 2.4.2? A designated
> extension was/is not a requirement in 1.2, 1.3, 2.0, or 2.2. Do I have to
> rename all my CGIs?
>
> And why does apache2/cgi-bin have two files without extensions--printenv
> and test-cgi? The former is a perl script, the latter a shell script. The
> instructions in these files say only to add the necessary execution
> sheebang--#!/usr/bin/perl or #!/usr/bin/sh--and set permissions to 755.
> That's all that has been required for in my previous 15+ years with Apache.
> However now all I'm getting is the script text. When I go back to Apache
> 2.22.2, it all works fine.
>
> --
> "Hell hath no limits, nor is circumscrib'd In one self-place; but where we
> are is hell, And where hell is, there must we ever be" --Christopher
> Marlowe, *Doctor Faustus* (v, 121-24)
>



-- 
"Hell hath no limits, nor is circumscrib'd In one self-place; but where we
are is hell, And where hell is, there must we ever be" --Christopher
Marlowe, *Doctor Faustus* (v, 121-24)