apache2 + mod_perl - тупое баг =( [РЕШЕНО]

нажал:
emerge apache2
emerge perl
emerge mod_perl
в /etc/conf.d/apache - ..-D PHP5 -D PERL
в /etc/apache/modules/ mod_perl само прописало то что нужно..
дальше пишу:
/etc/init.d/apache2 start
оно - [!!]
в логе апача (error_log):
[Wed Aug 29 03:15:29 2007] [error] Can't locate lib.pm in @INC (@INC contains: /etc/perl /usr/lib
/perl5/vendor_perl/5.8.8/i386-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /
usr/lib/perl5/site_perl/5.8.8/i386-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl
/usr/lib/perl5/5.8.8/i386-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl . /usr/lib/apache2)
at /etc/apache2/modules.d/apache2-mod_perl-startup.pl line 1.\nBEGIN failed--compilation aborted
at /etc/apache2/modules.d/apache2-mod_perl-startup.pl line 1.\nCompilation failed in require at
(eval 2) line 1.\n
[Wed Aug 29 03:15:29 2007] [error] Can't load Perl file: /etc/apache2/modules.d/apache2-mod_perl-
startup.pl for server pussy:80, exiting...

что ему надо ?

Что никто mod_perl

Что никто mod_perl не использует ?
ткните на толковую доку как на гентоо сделать апач + мод_перл.. плиииз.

вообще я так

вообще я так поняо=л что он файл ненашёл просто.
попробуй сделать
equery f mod_perl
и посмотреть куда он что ставит, и сопоставить с тем что ищет апач.

Весь гемор в

Весь гемор в том что дока вся невнятная. По идее и без этих телодвижений перл скрипты работали, но не черещ mod_perl а просто как CGI. После первого поста можно долго извращаться с разными параметрами и каждый раз apache2 ругался что не знает PerlHandler или в своих @INC не находил *.pm модулей.

Файл lib.pm входит в состав

Файл lib.pm входит в состав самого perl. Я бы проверил - не стоит ли у тебя каким-то образом более одного perl в системе. Затем переустановил perl и mod_perl.
Если файл lib.pm на месте, можно еще в настройках апача проверить - не выставлена ли в http.conf и аналогичных рядом с ним переменная PERL5_LIB. Это аналог LD_LIBRARY_PATH для Perl.

Fixed

Может кому будет полезным...
нажал:
emerge libperl
rm /etc/apache2/modules.d/75_mod_perl.conf

добавил в httpd.conf

Цитата:
< IfModule mod_perl.c >
PerlModule ModPerl::Registry
PerlTaintCheck On
< Location /cgi-bin >
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
< /Location >
< Directory /backuppc >
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
< /Directory >
< /IfModule >

< Files ~ "\.pl$" >
SetHandler perl-script
Options ExecCGI
< /Files >

/etc/init.d/apache2 start
[ok]

а если прото

а если прото снести mod_perl ?
то что ты снёс - кому принадлежало?
ну а если вставиш [РЕШЕНО] в тему первого поста - вообще великолепно будет...

mod_perl не сносил.

mod_perl не сносил. Я просто удалил файло которое в папке /etc/apache2/modules.d что отвечает за подргрузку модуля perl.
Решено нельзя ставить.. потому что я не понял как сделать так чтоб запускать перл скрипты как пхп. Чтоб из любой директории работало и в строке статуса сервера чтоб было "Apache/2.0.54 (Gentoo/Linux) mod_ssl/2.0.54 mod_perl/2.. pussy Port 80

надо же. спустя столько

надо же. спустя столько времени а та же проблема.
вообщем кажется пришло понимание причины данной проблемы:
1) апач сконфигурирован на запуск с mod_perl
2) этом файле apache2-mod_perl-startup.pl описываются модули перла, которые будут доступны через mod_perl
собственно причина в том, что в этом файле объявлен модуль перла, путь к которому оно при запуске апача не может найти.

Фактический пример:
в системе установлено
dev-perl/Apache-DBI,
в файле apache2-mod_perl-startup.pl
пишу: use Apache::DBI();
в ошибке получаю:

[Sun Jan 30 02:41:57 2011] [error] Can't locate Apache2/DBI.pm in @INC (@INC con
tains: /home/httpd/perl /etc/perl /usr/lib64/perl5/site_perl/5.12.2/x86_64-linux
 /usr/lib64/perl5/site_perl/5.12.2 /usr/lib64/perl5/vendor_perl/5.12.2/x86_64-li
nux /usr/lib64/perl5/vendor_perl/5.12.2 /usr/lib64/perl5/5.12.2/x86_64-linux /us
r/lib64/perl5/5.12.2 /usr/lib64/perl5/site_perl /usr/lib64/perl5/vendor_perl /us
r/local/lib/site_perl . /usr/lib64/apache2) at /etc/apache2/modules.d/apache2-mo
d_perl-startup.pl line 27.\nBEGIN failed--compilation aborted at /etc/apache2/mo
dules.d/apache2-mod_perl-startup.pl line 27.\nCompilation failed in require at (
eval 2) line 1.\n
[Sun Jan 30 02:41:57 2011] [error] Can't load Perl file: /etc/apache2/modules.d/
apache2-mod_perl-startup.pl for server 127.0.1.1:0, exiting...

причем:

[ Searching for packages matching Apache-DBI... ]
* Contents of dev-perl/Apache-DBI-1.06:
/usr
/usr/lib64
/usr/lib64/perl5
/usr/lib64/perl5/vendor_perl
/usr/lib64/perl5/vendor_perl/5.12.2
/usr/lib64/perl5/vendor_perl/5.12.2/Apache
/usr/lib64/perl5/vendor_perl/5.12.2/Apache/AuthDBI.pm
/usr/lib64/perl5/vendor_perl/5.12.2/Apache/DBI.pm
/usr/share
/usr/share/doc
/usr/share/doc/Apache-DBI-1.06
/usr/share/doc/Apache-DBI-1.06/Changes.bz2
/usr/share/doc/Apache-DBI-1.06/README.bz2
/usr/share/doc/Apache-DBI-1.06/TODO.bz2

как же сделать так, что бы искалось там, где оно по факту лежит? и странно, но почему же этого не сдалано при установке этого dev-perl/Apache-DBI?

[решено] - теперь mod_perl действительно запускается

Итак, собственно копание в направелнии учебников по perl
дало следующую информацию:
пути, где ищутся модуля perl заданы в массиве @INC.
Таким образом задача сводится к добавлению нужных путей в данный массив. Покопав в этом направлении,
подкорректировал свой apache2-mod_perl-startup.pl - собственно добавление нужных путей в массив @INC
у меня выглядит следующим образом:

@maxt_inc = ("/usr/lib64/perl5/vendor_perl/5.12.2/Apache/",
"/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/",
"/usr/lib64/perl5/vendor_perl/5.8.8/"
);
@new_INC = (@INC,@maxt_inc);
@INC = @new_INC;

ну и соответственно в логах запуска апача получаем:

[Sun Jan 30 15:33:21 2011] [notice] Digest: generating secret for digest authentication ...
[Sun Jan 30 15:33:21 2011] [notice] Digest: done
[Sun Jan 30 15:33:21 2011] [notice] Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/0.9.8o mod_perl/2.0.4 Perl/v5.12.2 configured -- resuming normal operations

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".