Perl & Apache - Linux et OS Alternatifs
Marsh Posté le 14-02-2002 à 15:23:50
je sais pas trop pour ton prob, mais j'ai un apache avec mod_perl, et je comprends pas trop pourquoi tu dis que ça fous le bordel
Remarque, j'ai desactivé mod_perl car mes scripts me faisaient des erreurs avec
Marsh Posté le 14-02-2002 à 16:32:57
Ben mod_perl, ca change un peu les scripts, faut lancer un second daemon, un nouveau fichier de conf pour ce daemon, etc...
En plus, tu l'as désactivé
Comment peux-t-on l'installer et le désactiver ?
LELFE
Marsh Posté le 14-02-2002 à 23:35:09
Y'a personne qui a installé Apache et Perl sans mod_perl et chez qui ca tourne qui veut bien m'aider ?
Marsh Posté le 15-02-2002 à 08:55:04
Regarde dans httpd.conf
il doit contenir une section relative aux shells scripts perl
et autoriser l'execusion dans leur repertoire spécifiques.
(Avec quelques params en prime).
Marsh Posté le 16-02-2002 à 20:26:34
Mes fichiers sont dans cgi-bin, et ce répertoire à bien les droits pour exécuter les scripts.
Mon problème, c'est que, avec la manière dont Apache exécute les scripts, le répertoire local n'est pas le répertoire dans lequel se trouve le scripts.
Sinon, le droit à mettre est +ExecCGI
LELFE
Marsh Posté le 16-02-2002 à 22:25:50
je comprend pas trop ton probleme moi le seul probleme ke j avais eu avec perl ct lors de la compile j avais oublier une option ki été euh la j ai l air fin je l ai po noté faudra je me redemerde la prochaine fois....
enfin bref mod_perl en dynamique sous apache ca marche bien
http://www.synoptick.com/perl/registry.pl
voila voila
Marsh Posté le 16-02-2002 à 22:30:16
ah vi dans le conf de apache j ai mais ca au fait (enfin decocher)
<IfModule mod_perl.c>
Alias /perl /var/www/perl
<Directory /var/www/perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
</Directory>
</IfModule>
voila pis biensur l ajout des ligne pour charger le module mais bon tu l a fais ceci
[jfdsdjhfuetppo]--Message édité par asphro--[/jfdsdjhfuetppo]
Marsh Posté le 16-02-2002 à 22:52:30
je trouve le fichier de conf nettement plus lisible avec perl compilé en static .
et je parie que c'est une conf à la debian ça ? (/var/www/perl ..... un poil exotique comme path )
[jfdsdjhfuetppo]--Message édité par saudium--[/jfdsdjhfuetppo]
Marsh Posté le 16-02-2002 à 22:55:10
c où sur une mdk ?
Marsh Posté le 16-02-2002 à 22:56:33
non a la apache c ce k il ma fais en le compilant j ai voulu installer le apache 1.3.22 avec les tgz (slakware) de robert sur linuxpackages mais c pakages a robert c de la merde
donc ja i tout compile a la main comme un ecran
remarke j aime po le static c po tres top nivo uprgrade
Marsh Posté le 16-02-2002 à 22:57:00
j'ai une partoche totalement dédiée web : apache comme le html .
dans /var , ya tjs un tas de trucs utilisés par d'autres services et je trouve que ca fait crad des que le web grossit
Marsh Posté le 16-02-2002 à 22:57:47
asphro a écrit a écrit : remarke j aime po le static c po tres top nivo uprgrade |
t'upgrades tout les jours ? non , donc
Marsh Posté le 16-02-2002 à 22:59:08
bof ... ca c /var/web pour le site principale les autres sont dns home/user pour chaque user avec le mod_userdir de apache
vu qu il fais ke 5mo max
non mais c quand meme plus pratique le dynamique simple choix chacun c gout
[jfdsdjhfuetppo]--Message édité par asphro--[/jfdsdjhfuetppo]
Marsh Posté le 17-02-2002 à 11:22:54
Mon problème est très tordu et space, je l'admets.
Voici un script bidon, on l'appelera test.pl:
----- test.pl -----
#!/usr/bin/perl
use CGI;
my $q = new CGI;
print $q->header();
print "<HTML><BODY>TEST.PL > OK</BODY></HTML>\n";
-------------------
Si je mets ca dans mon cgi-bin et que je l'appelle, ca marche bien.
Voici maintenant un autre script, on l'apperal require.pl
----- require.pl -------
#!/usr/bin/perl
require "malibamoi.pl";
use CGI;
my $q = new CGI;
print $q->header();
print "<HTML><BODY>REQUIRE.PL > OK</BODY></HTML>\n";
------------------------
(malibamoi.pl se trouve dans le même répertoire que require.pl)
Ce second script ne passe pas, car il nécessite un autre script.
Perl va le rechercher dans la liste contenu dans @INC.
Cette liste contient . (répertoire courant), or, malibamoi.pl est bien dans ce répertoire, donc ce ne devrait pas poser de problème. Malheuresement, quand Apache execute le script, le répertoire courant n'est pas celui du script, donc le . correspond pas au bon repertoire, donc il ne trouve pas la lib, donc erreur, pour Apache, une 500.
C plus clair (au fait je suis sous Mdk, mais j'ai tout réinstaller à partir de source) ?
Sinon, pour ce qui est de la discution sur les répertoire /var/...
je suis d'accord pour dire que c'est bidon de mettre ses fichiers web dans cette branche, mais ce sont les répertoires par défaut de l'installation de certaines distrib d'apache (sur la Mdk, c'est comme ca, mais bon, ca se change)
LELFE
Marsh Posté le 17-02-2002 à 12:07:57
oui je comprend tjrs po ton bleme
pis pour le /var/www
chacun c habitude...
c comme la cuillere dans le pot de nutella
Marsh Posté le 14-02-2002 à 14:00:42
Salut
Je viens de réinstaller conplèment Apache avec Php (mod_php) mais Perl me pose toujours problème.
Je ne veux pas installer mod_perl (ca mets trop le bordel), mais je m'en sors pas avec ce que j'ai actuellement.
En ce moment, le serveur Apache tourne correctement pour ce qui est du html et php. Les scripts tournent s'ils sont seuls, si dans l'un d'entre eux, je fais appel à un autre script (avec require "monscript.pl" ) et bien perl ne le trouve pas, (impossible de trouver le fichier dans @INC)
Hors, dans @INC, il y a bien . (le répertoire courant), mais j'ai
l'impression, que quand l'interpretateur perl execute le script, il prend le répertoire courant du shell, et non pas le répertoire dans lequel se trouve le script.
Si je me place dans le répertoire du script, et que j'exécute le script en ligne de commande, tout passe bien, mais si je suis en http, ca passe pas.
Comment expliquer à Apache qu'il doit faire :
cd /mon/rep/avec/mes/cgi
perl monscript.pl
et pas
perl /mon/rep/avec/mes/cgi
Lorsqu'il exécute les script. Une idée ?
Merci d'avance
Cordialement
Aurélien