Всем доброго времени суток! Люди кто часто общается с апачем подскажите как вылечить следующуюю болезнь.
Ставлю OTRS, это сервисдеск такой, вебморда сделана на perl'овских скриптах, с ними и с апачем у меня как раз проблема.
в настройках апача описываю директорию со скриптами
<Directory "/var/www/sd/otrs-2.3.3/bin/cgi-bin/">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
вываливается ошибка
[error] (13)Permission denied: exec of '/var/www/sd/otrs-2.3.3/bin/cgi-bin/installer.pl' failed [Tue Feb 03 15:42:14 2009] [error] [client 172.168.100.50] Premature end of script headers: installer.pl
в шеле скрипт отрабатывается нормально.
если добавить в описание SetHandler .pl при обращении, выдается предложение сохранить или открыть файл.
права на файл выставлены установочным скриптом, который идет в исходниках
-rwxrwxr-x 1 apache apache 4364 Фев 3 13:51 /var/www/sd/otrs-2.3.3/bin/cgi-bin/installer.pl
пробовал менять владельца и права, лучше не становится, либо premature end либо сохранить как...
Причем у меня на почтовике крутится awstats он также на перловских скриптах, там все нормально, подделываю конфиги такие же как на нем, результата положительного тоже нет.
Можето кто подскажет что? Заранее благодарю.
offtopic
httpd.conf:
# # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/" ... # "/usr/local/www/apache22/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "/usr/local/www/apache22/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> ... # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # AddHandler cgi-script .cgiУ тебя всё прописано соответствующим образом?
:wq
--
Live free or die
+
если вы имеете директивы ScriptAlias и Alias для каталогов /otrs/ и /otrs-web/ да они пристуствуют.
there is only war...
!
Вы приводите Locations!
Для физических (каталогов на файловой системе, параметр Directory) доступ прописан и разрешён?
:wq
--
Live free or die
Вот эта фигня, помоему
Вот эта фигня, помоему означает, что у тебя скрипт в виндовом формате
Попробуй сделать так
cat -A /var/www/sd/otrs-2.3.3/bin/cgi-bin/installer.pl
Если в конце каждой строки будет лишний символ, то я прав.
-----------------------------------------»
если хочешь послать в MAN, лучше промолчи.
+
проверил, там сразу идут переносы строк, да и сразу сомневался, штука эта кросплатформенная, но с упором на люнихи.
вобщем после ковыряний, снес апач полностью, вынес конфиги из etc, вынес otrs, начал все заново, руководствуясь по докам которые шли с исходниками. пришел к тому что vhosts.conf
Listen 80 ServerName sd.uzps.mh.ru DocumentRoot /var/www/ # agent, admin and customer frontend ScriptAlias /otrs/ "/var/www/sd/otrs-2.3.3/bin/cgi-bin/" Alias /otrs-web/ "/var/www/sd/htdocs/ot/" # if mod_perl is used <IfModule mod_perl.c> # load all otrs modules Perlrequire /var/www/sd/otrs-2.3.3/scripts/apache2-perl-startup.pl # Apache::Reload - Reload Perl Modules when Changed on Disk PerlModule Apache::Reload PerlInitHandler Apache::Reload # set mod_perl2 options <Location /otrs> # ErrorDocument 403 /otrs/customer.pl # AllowOverride None ErrorDocument 403 /otrs/index.pl SetHandler perl-script PerlHandler ModPerl::Registry Options +ExecCGI PerlOptions +ParseHeaders Order allow,deny Allow from all </Location> </IfModule> # directory settings <Directory "/var/www/sd/otrs-2.3.3/bin/cgi-bin/"> AllowOverride None Options +ExecCGI -Includes Order allow,deny Allow from all </Directory> <Directory "/var/www/sd/htdocs/ot/"> AllowOverride None Order allow,deny Allow from all </Directory> # MaxRequestsPerChild (so no apache child will be to big!) MaxRequestsPerChild 400в гугле также нашел то, что нужно подключить mod_perl.so в httpd.conf
добавил его таким макаром
LoadModule perl_module modules/mod_perl.so
но вспомнил что вынес, конфиги из /etc а там в /etc/apache2/modules.d/ должен быть конфиг для mod_perl, щас запущу обновление mod_perl а там поглядим, но вчера при запуске апача вываливалось это
имхо недостаточно ему перловского модуля Apache::Reload, как его поставить? только без CPAN
there is only war...
+
а если сделать
то апач запускается, админка открывается, но читая доки, я так понял что это модуль несет важную функции,.. как собрать то его?
искал find'ом *eload* , конкрентно Reload.pm ненашел, был Reload.pom но это док по модулю, как его включать в апаче, раскурил его и както без толку...
there is only war...