OVH Cloud OVH Cloud

pb perl et apache

5 réponses
Avatar
cd
Bonjour.

J'ai posté d'abord sur alt.apache.configuration mais apres une journée le
message n'est plus disponible sur le serveur alors je n'ai pas pu voir les
réponses :(
Mon pb est le suivant:
j'ai installé sous apache des virtuals hosts.
j'ai créé un repertoire cgi sous la racine de mon virtual host
(/home/toto/cgi)
dans le dossier cgi j'y ai un mis un scipt de test (test.pl)
Quand je veux l'executer sous mon url le script s'affiche comme sous un
éditeur mais ne s'execute pas. il ne s'interprete pas. le script a bien sur
les autorisations r+x pour other.
Quelqu'un connait la solution et peut m'aider?
Merci d'avance.

Dominique

5 réponses

Avatar
Jean-Philippe Caruana
bonjour,

j'ai installé sous apache des virtuals hosts.
j'ai créé un repertoire cgi sous la racine de mon virtual host
(/home/toto/cgi)
dans le dossier cgi j'y ai un mis un scipt de test (test.pl)
Quand je veux l'executer sous mon url le script s'affiche comme sous
un

éditeur mais ne s'execute pas. il ne s'interprete pas. le script a
bien sur

les autorisations r+x pour other.


pour other ? il faut que ce soit tout le monde
chmod -R a+rx /home/toto/cgi

avez vous essayé de faire marcher les script de test de base déjà
avant d'en tester ailleurs ? Que retourne(nt)
http://localhost/cgi-bin/printenv et/ou
http://localhost/cgi-bin/test.cgi ?

si déjà la vous avez le code et non son résultat, il faut revoir la
conf de votre apache

ensuite, si cela marche, vérifiez votre conf d'apache :

#il faut le module CGI de chargé :
LoadModule cgi_module modules/mod_cgi.so

#lui dire que faier avec quelles extexnsions
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

#et configurer le dossier comme il faut :
#je passe sous silence les déclaration d'alias cgi-bin
<Directory /var/www/localhost/cgi-bin>
AllowOverride All
Options ExecCGI
<IfModule mod_access.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>

il faut aussi que le user dir soit configuré
sinon, testez vos scripts en les placant dans
/var/www/localhost/cgi-bin avant de les mettre adbs votre home

mes 0.02 €

--
jpc

Avatar
cd
Ok merci Jean-Philippe. Je vais tester tout ça
Dominique
"Jean-Philippe Caruana" a écrit dans le message news:

bonjour,

j'ai installé sous apache des virtuals hosts.
j'ai créé un repertoire cgi sous la racine de mon virtual host
(/home/toto/cgi)
dans le dossier cgi j'y ai un mis un scipt de test (test.pl)
Quand je veux l'executer sous mon url le script s'affiche comme sous
un

éditeur mais ne s'execute pas. il ne s'interprete pas. le script a
bien sur

les autorisations r+x pour other.


pour other ? il faut que ce soit tout le monde
chmod -R a+rx /home/toto/cgi

avez vous essayé de faire marcher les script de test de base déjà
avant d'en tester ailleurs ? Que retourne(nt)
http://localhost/cgi-bin/printenv et/ou
http://localhost/cgi-bin/test.cgi ?

si déjà la vous avez le code et non son résultat, il faut revoir la
conf de votre apache

ensuite, si cela marche, vérifiez votre conf d'apache :

#il faut le module CGI de chargé :
LoadModule cgi_module modules/mod_cgi.so

#lui dire que faier avec quelles extexnsions
AddHandler cgi-script .cgi
AddHandler cgi-script .pl

#et configurer le dossier comme il faut :
#je passe sous silence les déclaration d'alias cgi-bin
<Directory /var/www/localhost/cgi-bin>
AllowOverride All
Options ExecCGI
<IfModule mod_access.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>

il faut aussi que le user dir soit configuré
sinon, testez vos scripts en les placant dans
/var/www/localhost/cgi-bin avant de les mettre adbs votre home

mes 0.02 ?

--
jpc

Avatar
atchoum
bonjour,


j'ai installé sous apache des virtuals hosts.
j'ai créé un repertoire cgi sous la racine de mon virtual host
(/home/toto/cgi)
dans le dossier cgi j'y ai un mis un scipt de test (test.pl)
Quand je veux l'executer sous mon url le script s'affiche comme sous


un

éditeur mais ne s'execute pas. il ne s'interprete pas. le script a


bien sur

les autorisations r+x pour other.



pour other ? il faut que ce soit tout le monde
chmod -R a+rx /home/toto/cgi


????
Donner la permission d'executer un script à tout le monde me semble très
risqué.

Il faut régler le user et le group pour chaque fichier, répertoire en
fonction de la valeur des directives de User et Group dans le fichier
http.conf.

Typiquement pour Debian, cela correspond à ceci:
chown -R www-data.www-data /home/toot/cgi

Pour les autres distribs remplacer en général www-data par nobody.nogroup

A+++
Jean-Pierre


Avatar
Jean-Philippe Caruana
pour other ? il faut que ce soit tout le monde
chmod -R a+rx /home/toto/cgi


????
Donner la permission d'executer un script à tout le monde me semble
très

risqué.


cela dépend des points de vue : j'ai déjà eu des discussions
animées à ce sujet sur la mailing list de gentoo (voir archives)


Il faut régler le user et le group pour chaque fichier, répertoire
en

fonction de la valeur des directives de User et Group dans le fichier

http.conf.

chown -R www-data.www-data /home/toot/cgi

Pour les autres distribs remplacer en général www-data par
nobody.nogroup


ou bien apache.apache (gentoo)

attention à la suite : pouvoir écrire avec son propre user dans un de
ses propres dossiers (on est dans le /home/toto ici, pas dans le /var)

--
jpc


Avatar
Patrick Mevzek
????
Donner la permission d'executer un script à tout le monde me semble très
risqué.


????

Si le script est exécuté par le web, sauf ACL ou authentification, le
monde entier peut l'exécuter via le protocole HTTP.

On fait souvent davantage confiance aux utilisateurs locaux (compte sur
la machine) qu'aux utilisateurs du monde entier via HTTP.

Il faut régler le user et le group pour chaque fichier, répertoire en
fonction de la valeur des directives de User et Group dans le fichier
http.conf.

Typiquement pour Debian, cela correspond à ceci: chown -R
www-data.www-data /home/toot/cgi


Au contraire, moi je recommande dans mes cours
qu'Apache ne soit PAS le propriétaire des fichiers servis/exécutés via le Web
Ca évite, s'il y a une faille, qu'il puisse modifier les droits et écrire
dedans (puisqu'on est bien d'accord que le nécessaire a déjà été fait au
départ pour qu'il n'ait pas les droits d'écriture).

Il est bien plus sain que les fichiers soient possédés par root ou un
autre compte (style le webmaster).
Après, parfois c'est plus tordu, par exemple avec le safe mode PHP.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>