Как запустить Perl-скрипт в localhost? - PullRequest
4 голосов
/ 18 января 2012

Я уже установил 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 ]

5 голосов
/ 18 января 2012

вы не можете прочитать содержимое 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.

3 голосов
/ 18 августа 2012

Как настроен ваш Apache? Вы удостоверились, что говорите Apache выполнить скрипт CGI в каталоге cgi-bin?

Что-то вроде:

ScriptAlias /cgi-bin/ "/var/www/website/cgi-bin/"
<Directory "/var/www/website/cgi-bin/">
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

                ...
</Directory>
0 голосов
/ 18 января 2012

Если вы не привязаны к apache или можете запускать эти сценарии на другом порту, вы можете использовать набор инструментов Plack / PSGI, в котором есть решения для запуска старых сценариев CGI в качестве приложений PSGI. Смотрите Запуск сценариев CGI на Plack , чтобы узнать, как это сделать.

...