ugrás a tartalomhoz

Apache2 és Perl CGI

pint3r · 2005. Szep. 7. (Sze), 18.03
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?
 
1

<Nincs cím>

Ajnasz · 2005. Szep. 7. (Sze), 19.36
A cgi-t tartalmazó könyvtárra be van állítva az "Options +ExecCGI"?
http://httpd.apache.org/docs/1.3/howto/cgi.html#explicitlyusingoptionstopermitcgiexecution
2

+ExecCGI

pint3r · 2011. Már. 26. (Szo), 10.55
Konkrétan arra a könyvtárra nem állítottam be külön +ExecCGI-t, megtettem azt a /-re, valamint a /etc/apache2/modules.d/75_mod_perl.conf-ban beállítottam minden .cgi és .pl kiterjesztésű fájlra a +ExecCGI-t.

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.
3

Működik!

pint3r · 2011. Már. 26. (Szo), 10.56
Működik! :D

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.

<IfDefine PERL>
  <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.