Perl: 500-ая ошибка на сайте
Материал из 1GbWiki.
Содержание |
[править] Описание
В 99% процентах случаев скрипты Perl на UNIX-хостинге 1Gb.ru выдают 500-ую ошибку из-за синтаксической ошибки или из-за неустановленных модулей, которые подключаются в скрипте через директивы use
. В Интернете море информации по этой теме, в частности ответов на вопросы "Почему нет ошибки в лог-файлах web-сервера?", "Почему при любых ошибках Perl сообщает только 500-ую ошибку?", "Куда по умолчанию Perl пишет ошибки?", поэтому в этой статье речь пойдет только о том, как решить и решить быстро.
Важно отметить, что в первую очередь не нужно смотреть лог-файлы и "права доступа" к файлам, а лучше сделать то, о чем говорится ниже.
[править] Решение
- В начало вашего скрипта просто добавьте строку:
use CGI::Carp qw(fatalsToBrowser);
то есть получится, что ваш скрипт выглядит так:
#!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); ... ваш код ...
После этого, если обратиться к скрипту через обозреватель, то вы увидите настоящую ошибку.
- Если вы работаете в шелле, то ошибку можно посмотреть так:
perl -l ваш_скрипт.pl
[править] См. также
[править] Ссылки
- CGI routines for writing to the HTTPD (or other) error log (англ.) - официальная документация по модулю CGI::Carp.