Форум русской поддержки ОС Fedora linux
Изучаю Perl. Решил поставить модуль, чтобы попрактиковаться. Ставится все легко, а вот заставить его работать не могу. Конфиг сижу часами поправляю. Мне нужно, чтоы все .pl файлы выполнялись и index.pl работал. В httpd.conf добавил index.pl в строке DirectoryIndex. Выполнения не могу добиться.
Неактивен
Спойлер:
[Foxcool@foxbook html]$ cat < /etc/httpd/conf.d/perl.conf
#
# Mod_perl incorporates a Perl interpreter into the Apache web server,
# so that the Apache web server can directly execute Perl code.
# Mod_perl links the Perl runtime library into the Apache web server
# and provides an object-oriented Perl interface for Apache's C
# language API. The end result is a quicker CGI script turnaround
# process, since no external Perl interpreter has to be started.
#
LoadModule perl_module modules/mod_perl.so
# Uncomment this line to globally enable warnings, which will be
# written to the server's error log. Warnings should be enabled
# during the development process, but should be disabled on a
# production server as they affect performance.
#
PerlSwitches -w
# Uncomment this line to enable taint checking globally. When Perl is
# running in taint mode various checks are performed to reduce the
# risk of insecure data being passed to a subshell or being used to
# modify the filesystem. Unfortunately many Perl modules are not
# taint-safe, so you should exercise care before enabling it on a
# production server.
#
#PerlSwitches -T
# This will allow execution of mod_perl to compile your scripts to
# subroutines which it will execute directly, avoiding the costly
# compile process for most requests.
#
#Alias /perl /var/www/perl
#<Directory /var/www/perl>
# SetHandler perl-script
# PerlResponseHandler ModPerl::Registry
# PerlOptions +ParseHeaders
# Options +ExecCGI
#</Directory>
#PerlModule ModPerl::Registry
#<Files ~ ".pl">
# SetHandler perl-script
# PerlHandler ModPerl::PerlRun
# Options +ExecCGI
# PerlSendHeader On
# allow from all
#</Files>
Alias /perl /var/www/perl
<Directory /var/www/html>
SetHandler perl-script
PerlResponseHandler ModPerl::PerlRun
PerlOptions +ParseHeaders
Options +ExecCGI
Allow from all
</Directory>
# This will allow remote server configuration reports, with the URL of
# http://servername/perl-status
# Change the ".example.com" to match your domain to enable.
#
#<Location /perl-status>
# SetHandler perl-script
# PerlResponseHandler Apache2::Status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
один блок закоментирован. Пытался уже сделать хотябы чтобы в папке выполсялось. Но никак. Даже тот дефолтный.
Неактивен
привет,
Foxcool написал:
Изучаю Perl. Решил поставить модуль, чтобы попрактиковаться. Ставится все легко, а вот заставить его работать не могу. Конфиг сижу часами поправляю. Мне нужно, чтоы все .pl файлы выполнялись и index.pl работал. В httpd.conf добавил index.pl в строке DirectoryIndex. Выполнения не могу добиться.
perl.conf поправляешь?
несколько хитов или короткий action plan:
- права -- проверь, что скрипты исполняемы (+х), принадлежат пользователю от которого запускается httpd (скорее всего apache:apache);
- поправь perl.conf след. образом:
Alias /perl /var/www/perl <Directory /var/www/perl> Options ExecCGI AddHandler cgi-script .cgi .pl </Directory>
(эти опции можно задать глобально в httpd.conf, может они уже там есть)
- создай тестовый файл index.pl (рабочий контент может найти ниже ) и положи в /var/www/perl, затем запусти из любимого броузера.
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "<h1>wasssap maan, it's works!!!</h1>\n";
Если после все этого ты не увидишь текста на странице, то идем в /var/log/httpd и смотрим последние записи в error_log и access_log
P.S. последний пункт логичнее было сделать первым
Неактивен
Я, конечно сделал по-своему, но ваши подсказки вызвали у меня инсайты, без которых до меня бы не дошло. Проблема таилась в том, что я действительно пытался править perl.conf. Если внимательно взглянуть на основной конфиг, и конфиги, которые инклудятся из ../conf.d, то там очень много возможностей сделать ошибку обнаруживается. Многие строки там и там описывают дествия над одними и теми же объектами. Я вырубил этот инклуд и поправил все напряую. Теперь работает. (:
Опыта прибавилось немного. На хостинге меня пока не учат без панели настраивать всякие вкусности, т.к. без надобности это почти.
Большое спасибо!
Отредактированно Foxcool (2009-06-18 17:22:18)
Неактивен
Foxcool,
не кошерно все в один конфиг сваливать для этого такую структуру и создали
представь себе ситуацию, когда у тебя будут постепенно появляться новые модули/фишки/дополнения к твоему web-серверу — к примеру тот же самый phpmyadmin/phppgadmin/roundecube и прочее... и что все должны дописывать необходимые строки в основной конфиг httpd? а потом ты будешь по нему искать что и где если понадобится что то поправить? однозначно неудобно!
Неактивен
А я уже вернул все на место. И перенастроил кошерно.
Кстати, как раз установка майадмина и заставила вернуть структуру... (:
Отредактированно Foxcool (2009-07-02 14:21:43)
Неактивен
прив,
дело привычки
Неактивен