Как запустить Perl-скрипт в localhost?
Я уже установил Apache. Я использую PHP для моих сценариев в localhost. Нужно знать, как запустить скрипт Perl. Я установил sudo aptitude install libapache2-mod-perl2. Я создал имя каталога cgi-bin в моем /var/www/cgi-bin, там внутри этой папки я сохранил свой perl-скрипт perl_1.pl. Доступны разрешения для каталога. Что еще мне нужно сделать, чтобы запустить скрипт? я просто набираю http://localhost/cgi-bin/ и получаю ошибку 403 У вас нет прав доступа к / cgi-bin / на этом сервере. пожалуйста помоги!!
Спасибо
3 ответа
Вы не можете прочитать содержимое cgi-bin. Вы должны обратиться непосредственно к одному из сценариев, в этом случае: http://localhost/cgi-bin/perl_1.pl
Кроме того, убедитесь, что ваш каталог cgi-bin / действительно обрабатывается как таковой в httpd.conf.
Да, и в случае, если вы потом наткнетесь на 500: убедитесь, что ваш Perl-скрипт печатает правильный HTTP-заголовок. Это может быть легко достигнуто путем:
use CGI qw(:standard);
print header();
И как указал Pwex: убедитесь, что в вашем скрипте установлен исполняемый бит.
chmod 755 perl_1.pl
... должно работать в большинстве случаев
Кроме того, для дальнейшего использования стоит упомянуть mod_perl, так как это естественный следующий шаг после ознакомления с основами cgi + perl + apache. Подробное описание этого вопроса выходит за рамки этого ответа, но я подумал, что упомяну его, чтобы вы знали, куда идти дальше, когда вы ознакомились с основами, а также увидели ограничения cgi.
Как настроен ваш Apache? Вы удостоверились, что говорите Apache выполнить скрипт CGI в каталоге cgi-bin?
Что-то вроде:
ScriptAlias /cgi-bin/ "/var/www/website/cgi-bin/"
<Directory "/var/www/website/cgi-bin/">
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
...
</Directory>
Если вы не привязаны к apache или можете запускать эти сценарии на другом порту, вы можете использовать набор инструментов Plack/PSGI, в котором есть решения для запуска старых сценариев CGI в качестве приложений PSGI. Посмотрите Запуск CGI-скриптов на Plack для нескольких способов сделать это.