Почему мой 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-скрипты на моем локальном хосте?

2 ответа

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

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

Сделайте разрешения похожими на это: -r-xr-xr-x

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

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

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

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