Ik ben bezig met een webapplicatie in Perl die bestaat uit een script.pl en diverse modules, die allemaal in dezelfde dir staan (/www/domein/cgi-bin/). Als server draai ik apache2 met mod_perl2, en PerlRun als PerlHandler.
Als ik het script vanaf de console start werkt ie prima. Wanneer ik het via de browser oproep krijg ik een 500 server error, de logs zeggen dan dat perl de module "Configuration.pm" niet kan vinden. Dit is de allereerste (eigen) module die ik mbv "use Configuration;" include.
Wanneer ik "use lib '/www/domein/cgi-bin';" bovenaan erbijzet werkt de applicatie wel, maar ik wil als het even kan liever geen harde paden in mijn code hebben. De app moet op vele verschillende configuraties kunnen werken zonder dat de code aangepast hoeft te worden. Daar heb ik een config file voor.
Het bizarre is ook dat wanneer ik met behulp van de var $0 of met FindBin::Bin de huidige dir probeer te bepalen, dit niet werkt. Sterker nog, dit werkt wel:
Maar dit werkt niet:
Steek mij maar lek....
Verder heb ik ook problemen met gebruik van STDERR. Voor het domein heb ik een eigen apache error log gedefinieerd, en daar komen ook netjes alle perl errors van het domein in terecht. Maar als ik vanuit de applicatie een 'print STDERR "blaat"' doe dan komt dat opeens weer in de main error log
Erg vaag allemaal.
Onder de CGI versie van perl werkt het script trouwens volledig zonder de hier beschreven problemen.
Ik ben hier al 2 dagen mee aan het rotzooien, alles aan het doorlezen wat ik kan vinden maar ik kom geen steek verder en word er helemaal leip van. Ik overweeg bijna gewoon maar standaard CGI te gaan gebruiken. Kan iemand hier misschien wat opheldering verschaffen?
Als ik het script vanaf de console start werkt ie prima. Wanneer ik het via de browser oproep krijg ik een 500 server error, de logs zeggen dan dat perl de module "Configuration.pm" niet kan vinden. Dit is de allereerste (eigen) module die ik mbv "use Configuration;" include.
Wanneer ik "use lib '/www/domein/cgi-bin';" bovenaan erbijzet werkt de applicatie wel, maar ik wil als het even kan liever geen harde paden in mijn code hebben. De app moet op vele verschillende configuraties kunnen werken zonder dat de code aangepast hoeft te worden. Daar heb ik een config file voor.
Het bizarre is ook dat wanneer ik met behulp van de var $0 of met FindBin::Bin de huidige dir probeer te bepalen, dit niet werkt. Sterker nog, dit werkt wel:
code:
1
| use lib "/www/domein/cgi-bin"; |
Maar dit werkt niet:
code:
1
2
| my $bla = "/www/domein/cgi-bin"; use lib $bla; |
Steek mij maar lek....
Verder heb ik ook problemen met gebruik van STDERR. Voor het domein heb ik een eigen apache error log gedefinieerd, en daar komen ook netjes alle perl errors van het domein in terecht. Maar als ik vanuit de applicatie een 'print STDERR "blaat"' doe dan komt dat opeens weer in de main error log
Erg vaag allemaal.
Onder de CGI versie van perl werkt het script trouwens volledig zonder de hier beschreven problemen.
Ik ben hier al 2 dagen mee aan het rotzooien, alles aan het doorlezen wat ik kan vinden maar ik kom geen steek verder en word er helemaal leip van. Ik overweeg bijna gewoon maar standaard CGI te gaan gebruiken. Kan iemand hier misschien wat opheldering verschaffen?