Как мне сказать mod_perl2 найти мои модули Perl?

Я только что установил свою систему с 64-разрядной версией Oracle Linux5.4 под управлением Apache Server версии: Apache / 2.2.3 и mod_perl 2.

Теперь у меня есть библиотеки Perl, установленные по определенному пути: / my / perl / libs, и я скорректировал свой httpd.conf, чтобы это компенсировать (я добавил следующее):

SetEnv MY_LIBS / мой / perl / libs

и в моих программах CGI я настраиваю среду для компенсации:

используйте lib ($ ENV {'MY_LIBS'});

Иногда мои модули Perl распознают путь к / my / perl / libs и соответствующим образом вызывают все функции, а иногда нет, что приводит к ошибке 500.

Когда я перезапускаю apache (/etc/init.d/httpd restart), все работает нормально, но затем появляется ошибка 500.

Есть какие идеи? На что я должен смотреть?


person paulj3000    schedule 14.04.2010    source источник
comment
Я забыл упомянуть: если я запустил это в обычном режиме cgi, все будет работать нормально.   -  person paulj3000    schedule 15.04.2010
comment
Какая ошибка в журнале ошибок?   -  person brian d foy    schedule 20.04.2010


Ответы (2)


Вы не можете просто «использовать lib» в скрипте mod_perl2. Вам нужно либо создать сценарий «startup.pl» с необходимой библиотекой «use lib», либо добавить параметр PerlSwitches. См. http://perl.apache.org/docs/2.0/user/config/config.html#Adjusting_C__INC

person Snowhare    schedule 18.04.2010

Я всегда помещаю такой блок в свой httpd.conf:

<Perl>
    use lib "/my/perl/lib";
</Perl>

Я ставлю это перед любыми PerlModule или другими настройками конфигурации, относящимися к Perl.

person DougWebb    schedule 02.06.2010