Почему мой Perl CGI-скрипт вызывает внутреннюю ошибку сервера на Apache?

Я установил apache2 в Ubuntu 11.04, и localhost работает. Я создал простой скрипт printenv.pl и поместил его в следующую директорию

$ mv printenv.pl /usr/lib/cgi-bin/
$ chmod +rx /usr/lib/cgi-bin/printenv.pl

Однако, когда я перехожу на http://127.0.0.1/cgi-bin/printenv.pl , Я получаю 500 Внутренняя ошибка сервера

Я проверил журнал ошибок на /var/log/apache2, и это то, что он говорит:

[Mon Oct 24 11:04:25 2011] [error] (13)Permission denied: exec of '/usr/lib/cgi-bin/printenv.pl' failed
[Mon Oct 24 11:04:25 2011] [error] [client 127.0.0.1] Premature end of script headers: printenv.pl

Любые предложения о том, как я могу это исправить и запустить CGI-скрипты на моем локальном хосте?

1
задан 10 January 2012 в 07:58

2 ответа

У меня была эта точная проблема (с теми же путями, каталогами, разрешениями и т. Д.) Совсем недавно, и вдруг я понял, что я прочитал где-то в документации по Apach2 около недели назад.

Вот и все - все, что вы настроили до сих пор, хорошо, но по соображениям безопасности apache не будет не запускать какие-либо файлы (CGI, Perl, C и т. Д.), Если только не [ 116] разрешение на запись (w) полностью удалено .

Сделайте так, чтобы разрешения выглядели так: -r-xr-xr-x

Тогда все должно работать нормально. Надеюсь, это поможет, дайте мне знать, если это все еще не работает.

0
ответ дан 10 January 2012 в 07:58

У меня тоже была эта проблема. Оказалось, что я установил права доступа к файлам .pl на 775. Apache не позволяет пользователю писать. Попробуйте изменить права доступа к файлу .pl на 755.

Если это не так, проверьте настройки разрешений вашего веб-сайта в /etc/apache2/sites-available.

0
ответ дан 10 January 2012 в 07:58

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

Похожие вопросы: