OTRS + Apache2
Всем доброго времени суток! Люди кто часто общается с апачем подскажите как вылечить следующуюю болезнь.
Ставлю 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...