Не работают Perl скрипты из браузера (404 not found)

OC
На сайте с 24.08.2011
Offline
34
901

Здравствуйте!

Подскажите, что делать: Perl скрипты в директории cgi-bin не работают при обращении к ним из браузера (выдаётся ошибка 404 not found) и в то же время прекрасно запускаются командой вида perl testscript.cgi.

На сервере (VPS) стоит CentOS и запущен Apache 2.2.3

Подозреваю, что баг "сидит" где-то в настройках Апача, но где именно - понять не могу. На всякий случай привожу типичную выгрызку из httpd.conf:


<Directory /var/www/my_account/data/www/mydomain.com>
php_admin_value open_basedir "/var/www/my_account/data:."
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

<VirtualHost 123.231.255.0:80>
ServerName mydomain.com
DocumentRoot /var/www/my_account/data/www/mydomain.com
SuexecUserGroup my_account my_account
....................
DirectoryIndex index.html
ScriptAlias /cgi-bin/ /var/www/my_account/data/www/mydomain.com/cgi-bin/
....................
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
</VirtualHost>

Т.е. на первый взгляд выполнение perl'овых CGI скриптов разрешено. Может, с путями где-то напутал? ... пытаюсь разобраться уже полдня, всё уже пересмотрел, но пока никаких зацепок не вижу...

[umka]
На сайте с 25.05.2008
Offline
456
#1

Почитав error_log, вы узнаете, где напутали с путями.

Лог в помощь!
Andy_Kaufman
На сайте с 01.07.2014
Offline
22
#2

Можно гадать на кофейной гуще, но и правда, покажите что в логах.

OC
На сайте с 24.08.2011
Offline
34
#3
'[umka:
;12962486']Почитав error_log, вы узнаете, где напутали с путями.

Да уж, "слона-то я и не приметил" ☝

Вот что Апач пишет:

[Thu Jul 03 12:36:17 2014] [error] [client 111.222.111.222] script not found or unable to stat: /var/www/my_account/data/www/mydomain.com/cgi-bin/perlinfo.cgi

Загвоздка в том, что скрипт perlinfo.cgi был физически размещён не на самом mydomain.com, на его поддомене, т.е. на subdomain.mydomain.com. А Апач его искал почему-то в cgi-bin директории главного домена, а не поддомена.

В общем, всё заработало - стоило мне скопировать скрипты в cgi-bin директорию главного домена и вызвать их из браузера также, как я это делал ранее (т.е. http://subdomain.mydomain.com/cgi-bin/perlinfo.cgi ).

Осталось теперь самая малость - сделать так, чтобы "научить" Апач находить perl скрипты именно в директориях cgi-bin поддоменов.

Кстати, для поддоменов конфиг Апача выглядит аналогично основным доменам - т.е. всё тоже самое, только вместо domain.com везде стоит subdomain.domain.com.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий