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 <thad.humphr...@gmail.com>wrote: > Re thread #103692 > > On May 19, 2012, at 3:27 AM, Igor Cicimov <icici...@gmail.com> wrote: > > The name should be test.cgi > On May 19, 2012 5:29 PM, "Allen Liu" <allenliu2...@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 >> allenliu2...@gmail.com >> +1 510 936-0101 >> >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org >> For additional commands, e-mail: users-h...@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)