ModPerl::Registry - Не удается запустить Perl-скрипт CGI
Я нахожусь под Apache 2.4.7 и Ubuntu 14.04.
Я пытаюсь запустить следующий базовый скрипт на Perl (/home/fred/workspace/portfolio/cgi/fred.pl) в ModPerl::Registry
но он не будет выполнен (браузер рассматривает его как файл для загрузки, а не как скрипт perl)
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hi Fred !";
Это моя конфигурация виртуального хоста:
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/fred/workspace/portfolio/html
AddHandler perl-script .cgi .pl
PerlModule ModPerl::Registry
Alias / /home/fred/workspace/portfolio/cgi/
<Location />
SetHandler perl-script
PerlHandler ModPerl::Registry
Require all granted
Options +ExecCGI
</Location>
Я раньше бегал
sudo a2enmod cgi
который на самом деле активировал cgid (мой apache является многопоточным), хорошо.
когда я набираю 127.0.0.1/fred.pl, выполнение не выполняется (fred.pl имеет права 777)
Любая идея?
Спасибо
3 ответа
В ваш файл httpd.conf вам нужно добавить следующую строку
LoadModule cgid_module modules/mod_cgid.so
Это позволяет выполнять сценарии CGI на сервере apache httpd.
Вам также необходимо добавить следующую строку perl разрешения на выполнение CGI.
PerlSwitches -w
Кулак, PerlHandler
обработчик - это директива mod_perl1. mod_perl2 имеет PerlResponseHandler
Альтернатива обработчика.
Так что следующее правильно:
PerlResponseHandler ModPerl::Registry
А ты загрузил mod_perl.so? Когда вы используете Ubuntu, введите:
sudo a2enmod perl
или напишите подходящий LoadModule
линия и перезагрузите сервер.
Может быть, есть другая проблема. Однако мне не хватает информации.
Наконец, я рекомендую, чтобы mod_perl2 официально не поддерживал Apache 2.4 (декабрь 2014 г.).
Первое, что я проверю, это то, что у вас есть правильный файл конфигурации apache. (Простой способ проверить: внесите синтаксическую ошибку и посмотрите, будет ли она жаловаться при перезагрузке сервера.)
Если это правильный файл, то у вас есть проблема с вашими директивами config. Трудно их отладить, не видя всего файла. Вы можете попробовать начать с очень простого раздела конфигурации, например, здесь.
Я бы, наверное, отключил cgid, пока вы не получите эту работу.