Запустите файл .cgi в Ubuntu. - PullRequest
       41

Запустите файл .cgi в Ubuntu.

5 голосов
/ 22 февраля 2011

Я использую Apache / PHP под Ubuntu

Когда я запускаю файл .cgi, перейдя на http://localhost/mycgi.cgi, браузер отобразит код вместо его запуска.

Как заставить браузер выполнять файл CGI вместо отображения его содержимого?

Ответы [ 4 ]

13 голосов
/ 10 ноября 2011

Добавьте эти строки в ваш файл apache2.conf

<Directory /usr/local/apache2/htdocs/somedir>
    Options +ExecCGI
</Directory>

AddHandler cgi-script .cgi .pl
2 голосов
/ 22 февраля 2011

Очевидно, что CGI выполнение не настроено должным образом. Вы пробовали учебник ?

Обычно все CGI сценарии помещаются в определенное место, например cgi-bin. Только файлы, присутствующие в этой папке, выполняются вообще. В противном случае они рассматриваются как обычные файлы, и веб-сервер просто возвращает их в качестве источника.

В учебнике показаны альтернативы, которые можно использовать для выполнения сценариев вместо того, чтобы просто возвращать их в виде текстовых файлов.

1 голос
/ 23 февраля 2011

Убедитесь, что строка shebang в вашем файле .cgi или .pl правильная.Строка shebang сообщает Apache, где находится интерпретатор Perl (интерпретатором Perl является файл perl.exe).

В руководстве Apache написано:

Ваша первая программа CGI Ниже приведен пример программы CGI, которая печатает одну строку в вашем браузере.Введите следующее, сохраните его в файле first.pl и поместите в каталог cgi-bin.#! / usr / bin / perl print "Content-type: text / html \ n \ n";напиши "Привет, Мир."тогда #!/usr/bin/perl необходимо изменить!Это верно даже для пользователей Windows, которые, как правило, могут полностью игнорировать и опускать строку Шебанга.(Почему в учебнике не упоминается этот факт, я не знаю - думаю, они не понимали, что некоторые люди всегда игнорируют строку shebang?)

Например, когда я установил Perl, это было автоматическипредложил мне установить Perl в C:\Program Files (x86)\Perl64 Внутри моей папки Perl64 есть папка binскрипты для работы с Apache.

0 голосов
/ 29 апреля 2014

Это обмануло меня на Amazon Ubuntu 14.04. У меня была конфигурация, которая «работала» в течение нескольких лет:

sudo a2enmod cgi
sudo service apache2 restart

Разобрались с некоторыми существующими сценариями Perl с расширением .cgi и существующей конфигурацией виртуального хоста. Также неправильно [не эта проблема, но связанная с этим обновлением]:

virtual.host

необходимо стать

virtual.host.conf

до того, как он был признан действительным.

...