По умолчанию при установке apache и apache-mod_perl подразумевается что они должны работать в через perlproxied. При попытке запроса скриптов из /perl/ выдается сообщение о не найденом пути. Лог apache об этом так же говорит. Лог apache-mod_perl при этом чистый. Поглядев конфиг apache, был найден следующий кусок: <IfDefine PERLPROXIED> <IfModule mod_proxy.c> ProxyPass /perl/ http://127.0.0.1:8200/ ProxyPassReverse /perl/ http://127.0.0.1:8200/ </IfModule> # Protect security-sensitive locations of httpd-perl server <Location ~ ^/perl/(perl-status|server-status|server-info)> Order deny,allow Deny from all Allow from 127.0.0.1 localhost #Allow from your.trusted.host </Location> </IfDefine> из которого следует что для работоспособности связки apache и apache-mod_perl через proxied требуется запускать apache с параметром -DPERLPROXIED После указания этого параметра в /etc/init.d/httpd все замечательно начинает работать.
maybe I'd add some /etc/sysconfig/httpd which would get sourced by /etc/init.d/httpd so that local administrator could inject the parameters without hacking and maintaining initscript.
scheduled for weekend
Проверка показала, что функционирование "не зависит от". Возможно, я совсем тормоз, но трогать то, что works for me, перед релизом не буду. Давайте продолжим через пару недель, все равно apache-1.3 будет капитально перековыриваться.
Ну давайте, только не забыть бы об этом. :)
Так... а багзилла-то помнит. Можете описать на пальцах для тупых майнтейнеров (меня :), как проверить работу/неработу? Покамест включение -DPERLPROXIED и hello.pl в /var/www/perl привели к 502 Proxy Error (при том, что на 127.0.0.1:8200 httpd-perl сидит, грабли с (98)Address already in use: make_sock: could not bind to port 80 лежат отдельно -- timing issue, что-то мне так кажется). 2 mithraen: тебе mod_perl ближе, мож починишь? Пока для 1.3.33rusPL30.20-alt3 делаю включение /etc/sysconfig/httpd и httpd-perl соответственно инитскриптами с передачей $ARGS.
> Можете описать на пальцах для тупых майнтейнеров (меня :), как проверить > работу/неработу? > > Покамест включение -DPERLPROXIED и hello.pl в /var/www/perl привели к 502 Proxy > Error (при том, что на 127.0.0.1:8200 httpd-perl сидит, грабли с (98)Address > already in use: make_sock: could not bind to port 80 лежат отдельно -- timing > issue, что-то мне так кажется). > > 2 mithraen: тебе mod_perl ближе, мож починишь? Честно говоря читая ленту так и не понял -- в чём именно проблема? Ну что it works for me, это понятно. У меня уже давно штатные инитскрипты не работают. У меня апачем вообще daemontools занимается (в связи с monit пора бы перейти не него). Никаких "Address already in use" быть не должно, разве что если httpd-perl пытается и на 80-м порту повеситься. Что в логах в этот момент? И какое содержимое hello.pl?
Говорю же -- про :80 отдельная тема, мелкий хак в alt3 состоит в том, что /etc/init.d/httpd-perl смотрит не на pidfile, а на lockfile. В hello.pl: #!/usr/bin/perl print "<html><body>Hello world!</body></html>" Речь не о том. В /var/log/error_log попадалось такое: [Sat Jan 29 20:56:16 2005] [error] [client a.b.c.d] (111)Connection refused: proxy connect to 127.0.0.1 port 8200 failed -- при этом netstat -pan | grep 8200 показывал пальцем на httpd-perl, а telnet localhost 8200 к чему-то даже коннектился. К тебе, собсно, вопрос не по тому, как в твоей конфигурации оно чудно работает, а как бы сделать так, чтобы работало в той, которая в данный момент обязана быть в пакете. :) [упс... забыл сказать Commit :]
А скрипт такой не будет работать :) Он будет Internal Server Error говорить. Заголовки кто будет добавлять? ;-) mod_perl, как и CGI, требует всю работу ручками делать. Или соответствующими модулями. Я понял о чём ты. Я имею в виду "как я могу это воспроизвести?". В смысле на каком срезе Сизифа, что выкачать? Ты имеешь в виду штатные установки? Вот у меня под рукой есть машинка где пока нет апача. Что мне надо сделать чтобы воспроизвести глюку?
Вот "как" -- лучше с tma@ выясните (как на меня -- попробуй поднять mod_perl со штатными инитскриптами и прочим). На текущем Sisyphus, по вкусу -- с apache из Daedalus (только там ещё кой-чего может быть разломано, но лучше отталкиваться от него) ну или уже со всем из ALM2.4, поскольку было бы неплохо сделать errata, раз у нас всё взорвано.
(In reply to comment #8) > А скрипт такой не будет работать :) Он будет Internal Server Error говорить. > Заголовки кто будет добавлять? ;-) mod_perl, как и CGI, требует всю работу > ручками делать. Или соответствующими модулями. Брось hello.pl для тупых. :)
*** Bug 6437 has been marked as a duplicate of this bug. ***
#6437 dup
Народ, как думаете, что лучше: - стартовать httpd-perl первым и при наличии /usr/sbin/httpd считать его запускающимся (вариант: +проверять chkconfig) => PERLPROXIED, или - написать в README.ALT, что запуск mod_perl требует добавления ARGS=-DPERLPROXIED в /etc/sysconfig/apache? Я пока делаю первое без chkconfig (неохота на ночь глядя писать парсилку `chkconfig --list httpd`, точно наклепу чего-нить не того).
кто-нить alt3 смотрел? ftp://ftp.altlinux.org/pub/people/mike/SRPMS/apache-1.3.33rusPL30.20-alt3.src.rpm http://paq.osdn.org.ua/~mike/apache-1.3.33-alt3/
По идее, fixed; фидбэка я не получил, человеку у нас на хостинге облом, заливаю в Sisyphus и backports.
ещё немного подновил: * Fri Sep 02 2005 Michael Shigorin <mike@altlinux.org> 1.3.33rusPL30.20-alt3%release_tag - whoops, README.ALT wasn't getting packaged (updated too) - altlinux-release build dependency appears illegal (long unneeded though)