Как запустить 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 для нескольких способов сделать это.

Другие вопросы по тегам