2008-12-10 20 views
8

Mam kilka modułów Perla zainstalowanych na moim komputerze hostingowym w ~/perl, w jaki sposób dodać je do ścieżki modułu Perla? Ustawienie PERL5LIB lub unshift ścieżek do @INC na pewno działa, ale zmienna środowiskowa nie pomaga, gdy działa jako skrypt CGI, a sposób @INC nie jest bardzo przenośny. Czy istnieje lepszy sposób? To musi być powszechny problem, czy czegoś brakuje?Jak ustawić ścieżkę integracji Perla dla modułów skryptu CGI?

Odpowiedz

6

PERL5LIB działa dobrze dla skryptów CGI. Musisz tylko ustawić zmienną we właściwym miejscu, na przykład konfigurację serwera. Z jakiego serwera internetowego korzystasz? W Apache używam dyrektywy SetEnv z mod_env.

@INC jest przenośny. Ścieżki, które tam umieścisz, mogą nie być takie same na każdym komputerze, ale nie powinieneś mieć problemu z samą zmienną.

Czy Przeczytaj FAQ wpisy w perlfaq8:

+0

Dzięki, nie wiedziałem o dyrektywie SetEnv. Właśnie tego szukałem. – zoul

+0

Nie działa to we wszystkich konfiguracjach serwerów - niektóre wyłączają SetEnv, az tego, co czytam, inne pozwalają tylko na ustawienie zmiennych środowiskowych rozpoczynających się od HTTP_. Pewnie jakiś środek bezpieczeństwa. – user1618143

9

Czystsze sposób to zrobić imo jest:

use lib "/path/" ; 

istnieją inne ciekawe i dobre sposoby, aby to zrobić, które można znaleźć tutaj:

http://www.slideshare.net/pfig/cpan-training-presentation/

Również re: CGI skrypty, możesz zdefiniować ścieżki PERL5LIB dla swojego Enge CGI, to zależy od twojego hosta.

Niektóre serwery Webhost pozwalają na specyficzne sterowanie zmiennymi env dla środowiska CGI i musisz je ustawić, inne mogą mieć listę "zezwoleń", która pozwala zmiennym widocznym w czasie początkowym pojawić się w zasięgu lokalnym.

Może pomóc w przeczytaniu tego, jak to zrobić na określonym serwerze HTTP.

Jest jeszcze jedna opcja, jeśli ustawienie ENV nie jest do gustu: local::lib

jakie wyszukiwania pewne predefiniowane ścieżki automatycznie.

+1

+1 Wystarczy zauważyć, że jest ignorowany PERL5LIB trzeba mieć włączony tryb skaza ... http: //perldoc.perl.org/perlsec.html#Taint-mode-and-%40INC – draegtun

Powiązane problemy