html

четверг, 24 октября 2013 г.

Perl. 500 Internal Server Error

1. При программировании на Perl-е бывает, что выдается следующее сообщение:

Заголовок “500 Internal Server Error ”

Само сообщение:
----------
"Internal Server Error
 
The server encountered an internal error or misconfiguration and was unable to complete your request.
 
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Apache/2.2.16 (Debian) Server at 127.0.0.1 Port 80" :
----------
500 Internal Server Error
500 Internal Server Error

Далее рассмотрим возможные причины ошибки 500 Internal Server Error при  программировании на Perl

2. Ошибки с правами доступа

Серверу Apache необходим доступ к скрипту на Perl-е с правом чтения и выполнения, поэтому этот скрипт, как правило, должен иметь режим 0555, а лучше 0755. Это необходимо для UNIX-систем . Каталог, в котором находится скрипт на Perl-е , сам должен быть выполняемым, поэтому присвойте ему режим доступа 0111, а лучше 0755. Это тоже необходимо для UNIX – систем, например Debian

Если будут неправильные права, то будет выдано ошибка 500 Internal Server Error , в файле error.log сервера Apache будут следующие сообщения:
----------
[Wed Oct 23 23:50:10 2013] [error] [client 127.0.0.1] (13)Permission denied: exec of '/usr/lib/cgi-bin/hello500err.pl' failed
[Wed Oct 23 23:50:10 2013] [error] [client 127.0.0.1] Premature end of script headers: hello500err.pl
-----------
В файле 500-Internal-Server-Error.rar в каталоге Ошибки с правами доступа приведены примеры двух скриптов – с правами 755 и 644, (это видно, если посмотреть архив программой 7-zip) а также приведен пример лога error.log . Скрипт с правами 644 дает ошибку, с скрипт на Perl-е с правами 755 выполняется правильно: 
Скрипт выполнился без ошибки 500 Internal Server Error
Скрипт выполнился без ошибки 500 Internal Server Error

Комментариев нет: