Тема: Проблема с настройки cgi скриптов на локальном сервере

При переходе по ht_tp://xxx.org/cgi-bin/printenv.pl или ht_tp://xxx.org/cgi/printenv.pl появляется ошибка 500 Internal Server Error.

В логах апача следующее:

[Mon Jun 04 07:32:16 2012] [error] [client 127.0.0.1] (OS 3)The system cannot find the path specified.  : couldn't create child process: 720003: printenv.pl
[Mon Jun 04 07:32:16 2012] [error] [client 127.0.0.1] (OS 3)The system cannot find the path specified.  : couldn't spawn child process: C:/Program Files/Programs/Apache/cgi-bin/printenv.pl

httpd.conf:

...
<Directory />
    Options Includes FollowSymLinks ExecCGI
    AllowOverride All
    Allow from all
</Directory>
...
<Directory "C:/Program Files/Programs/Apache/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # ht_tp://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    # Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>
...
    ScriptAlias /cgi-bin/ "C:/Program Files/Programs/Apache/cgi-bin/"
...
<Directory "C:/Program Files/Programs/Apache/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
...
    AddHandler cgi-script .cgi .pl

httpd-vhosts.conf:

<VirtualHost *:80>
    DocumentRoot "C:/Program Files/Programs/Apache/htdocs/xxx"
    ServerName xxx.org
    ServerAlias *.xxx.org
    ScriptAlias /cgi/ "C:/Program Files/Programs/Apache/htdocs/xxx/cgi/"
</VirtualHost>

Единожды! скрипт сработал без ощибок. Далее что то изменил и опять все слетело. Помогите пожалуйста.

2

Re: Проблема с настройки cgi скриптов на локальном сервере

Этот блок можно закомментировать, потому что его директивы повторяют корневые.

<Directory "C:/Program Files/Programs/Apache/htdocs">
...
</Directory>

В остальном вроде все нормально, хотя у меня выглядит немного иначе:

<Directory "C:/apache/cgi-bin">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
</Directory>

Возможно проблема в запуске Perl. Надо проверить не блокирует ли брандмауэр или антивирус.

3

Re: Проблема с настройки cgi скриптов на локальном сервере

Запускал перл в командной строке, лог:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\G***>cd "c:\program files\programs\apache\cgi-bin\"


C:\Program Files\Programs\Apache\cgi-bin>test.pl
Content-type: text/html

Hello, World.
C:\Program Files\Programs\Apache\cgi-bin>printenv.pl
Content-type: text/plain; charset=iso-8859-1

ALLUSERSPROFILE="C:\Documents and Settings\All Users"
APPDATA="C:\Documents and Settings\G***\Application Data"
CLIENTNAME="Console"
COMMONPROGRAMFILES="C:\Program Files\Common Files"
COMPUTERNAME="VIRTUALBOX"
COMSPEC="C:\WINDOWS\system32\cmd.exe"
FP_NO_HOST_CHECK="NO"
HOMEDRIVE="C:"
HOMEPATH="\Documents and Settings\G***"
LOGONSERVER="\\VIRTUALBOX"
NUMBER_OF_PROCESSORS="1"
OS="Windows_NT"
PATH="C:\Program Files\Programs\Activeperl\site\bin;C:\Program Files\Programs\Ac
tiveperl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem"
PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"
PROCESSOR_ARCHITECTURE="x86"
PROCESSOR_IDENTIFIER="x86 Family 6 Model 37 Stepping 5, GenuineIntel"
PROCESSOR_LEVEL="6"
PROCESSOR_REVISION="2505"
PROGRAMFILES="C:\Program Files"
PROMPT="$P$G"
SESSIONNAME="Console"
SYSTEMDRIVE="C:"
SYSTEMROOT="C:\WINDOWS"
TEMP="C:\DOCUME~1\G***\LOCALS~1\Temp"
TMP="C:\DOCUME~1\G***\LOCALS~1\Temp"
USERDOMAIN="VIRTUALBOX"
USERNAME="G***"
USERPROFILE="C:\Documents and Settings\G***"
WINDIR="C:\WINDOWS"

C:\Program Files\Programs\Apache\cgi-bin>

4

Re: Проблема с настройки cgi скриптов на локальном сервере

А что у вас в шебанг? Попробуйте там прописать путь к интерпретатору Perl.

Я установил Perl в корень, в каталог /usr/, поэтому такой шебанг работает нормально.

#!/usr/bin/perl

5

Re: Проблема с настройки cgi скриптов на локальном сервере

Спасибо)) проблема действительно в шебанг. Прописал C:/perl/bin/perl.exe и создал данную дерикторию, все наладилось. Помниться мне, существует директива для апача, если путь в шебанг указан неверный он ищет путь в реестре, не подкажете что за директива? помнню примерное название Script... register или что то подоюное...

6

Re: Проблема с настройки cgi скриптов на локальном сервере

Гляньте документацию.

ScriptInterpreterSource registry

7

Re: Проблема с настройки cgi скриптов на локальном сервере

Вставил в httpd.conf не работает. Что я не так делаю? Может ее в другом файле нужно указывать?

8

Re: Проблема с настройки cgi скриптов на локальном сервере

Проверьте строку в реестре. http://httpd.apache.org/docs/2.2/mod/co … etersource

9

Re: Проблема с настройки cgi скриптов на локальном сервере

Спасибо за помошь! Проблема решена! smile