Войти

Показать полную графическую версию : mod_perl Ошибка 500 Internal Server Error, как настроить?


andreevich
18-10-2009, 21:15
Здравствуйте, ситуация такая: Стоит ubuntu 9.04 desktop когдато ставили apache2+php+mysql, возникла потребность поставить perl, в гугле пол дня статьи рыл...
поставил mod_perl

$ sudo aptitude install libapache2-mod-perl2
$ sudo a2enmod perl
Module perl already enabled
$ perl -v

Результат

This is perl, v5.10.0 built for i486-linux-gnu-thread-multi

Copyright 1987-2007, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


Создаю виртуал хост в апаче
$ cd /etc/apache2/sites-available/
$ sudo cp ./default ./test
$ sudo gedit ./test

Редактирую конфиг так:

<VirtualHost 127.0.0.3:80>
ServerAdmin @
DocumentRoot /home/my/httpd_docs/test.local/WWW
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/my/httpd_docs/test.local/WWW>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /home/my/httpd_docs/test.local/cgi-bin/
<Directory "/home/my/httpd_docs/test.local/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /home/my/httpd_docs/test.local/test.local-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /home/my/httpd_docs/test.local/test.local-access.log combined

Alias /doc/ "/home/my/httpd_docs/test.local/doc/"
<Directory "/home/my/httpd_docs/test.local/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>


создаю директивы:
$ mkdir /home/my/httpd_docs
$ mkdir /home/my/httpd_docs/test.local
$ mkdir /home/my/httpd_docs/test.local/WWW
$ mkdir /home/my/httpd_docs/test.local/cgi-bin
$ mkdir /home/my/httpd_docs/test.local/doc

Включаю домен
$ sudo a2ensite peps.local

добавляю расширение в httpd.conf
AddHandler cgi-script .cgi .pl

добавляю в hosts домен
$ sudo gedit /etc/hosts

127.0.0.3 test.local www.test.local


рестарт апач
$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2
... waiting [ OK ]

делаю скрипт проверки:
$ gedit /home/my/httpd_docs/test.local/cgi-bin/env.cgi

print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}


Захожу на http://test.local/cgi-bin/env.cgi
Ошибка 500 Internal Server Error

Пробовал другие скрипты perl, итог тотже.

содержимое test.local-error.log:

[Mon Oct 19 04:05:20 2009] [error] [client 127.0.0.3] Premature end of script headers: env.cgi
[Mon Oct 19 04:05:23 2009] [error] [client 127.0.0.3] (13)Permission denied: exec of '/home/peps/httpd_docs/test.local/cgi-bin/env.cgi' failed
[Mon Oct 19 04:05:23 2009] [error] [client 127.0.0.3] Premature end of script headers: env.cgi


содержимое test.local-access.log:

127.0.0.3 - - [19/Oct/2009:04:05:23 +1100] "GET /cgi-bin/printenv.cgi HTTP/1.1" 500 446 "-" "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14"


Сборку определяет так:

Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.2 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0 Server at test.local Port 80


Посоветуйте пожалуйста, что можно сделать. Статьи в интернете ничему не привели, если есть у кого нибуть проверенная статья, дайте плиз линк.

Спасибо.




© OSzone.net 2001-2012