Apache2 és Perl CGI
Sziasztok!
Pár napja kezdtem el ismerkedni a perl-lel és a CGI-vel. A problémám pedig az, hogy require paranccsal csak @INC-ben található könyvtárakból tudok behúzni perl szkripteket.
Ha relatív elérést adok meg (pl: ./config.pl) akkor böngészőből 500-as hibát kapok. Az apache log-ban pedig írja, hogy nem találja a @INC-ben lévő könyvtárak egyikében sem az általam hivatkozott fájlt.
Parancssorból futtatva viszont simán működik.
Az biztos, hogy szerver szintű problémám van, csak sehol nem találok rá megoldást.
Gentoo Linux-ot használok,
Apache: 2.0.54
Perl: 5.8.6
mod_perl: 2.0.1-rc2
verziókkal.
A fenti problémán kívül működik minden rendesen.
Mi lehet a gond?
■ Pár napja kezdtem el ismerkedni a perl-lel és a CGI-vel. A problémám pedig az, hogy require paranccsal csak @INC-ben található könyvtárakból tudok behúzni perl szkripteket.
Ha relatív elérést adok meg (pl: ./config.pl) akkor böngészőből 500-as hibát kapok. Az apache log-ban pedig írja, hogy nem találja a @INC-ben lévő könyvtárak egyikében sem az általam hivatkozott fájlt.
Parancssorból futtatva viszont simán működik.
Az biztos, hogy szerver szintű problémám van, csak sehol nem találok rá megoldást.
Gentoo Linux-ot használok,
Apache: 2.0.54
Perl: 5.8.6
mod_perl: 2.0.1-rc2
verziókkal.
A fenti problémán kívül működik minden rendesen.
Mi lehet a gond?
<Nincs cím>
http://httpd.apache.org/docs/1.3/howto/cgi.html#explicitlyusingoptionstopermitcgiexecution
+ExecCGI
A CGI szkriptek futnak. Csak a require nem hajlandó az adott könyvtárból betölteni a lib-et, állandóan a @INC-ben keresi. Ellenben konzolból mint írtam megtalálja az aktuális könyvtárban is.
Működik!
A /etc/apache2/modules.d/75_mod_perl.conf fájlból az alábbin kívül mindent kitöröltem és működik.
<IfModule !mod_perl.c>
LoadModule perl_module modules/mod_perl.so
</IfModule>
</IfDefine>
Már tiszta ideg voltam, két napja ezzel szórakoztam és egyszerűen nem tudtam rájönni mi miatt nem megy. Még most sem vagyok tisztában vele, hogy miért működik így, mivel csak a .pl és .cgi fájlokra volt beállítva +ExecCGI. Fura...
A lényeg, hogy megy.