#1 Le 29/07/2006, à 05:06
- freenux.be
Exécution de script perl (.pl) sur localhost
Bonjour,
Je suis en plein codage d'un site dynamique dans lequel certains scripts perl seront utilisé ,
notament un moteur de recherche sémentique ; le problème est qu'en local lorsque je pointe sur mon fichier.pl (chmod 755) au lieu d'obtenir l'affichage résultant de son exécution , firefox me proprose de le télécharger ....
J'utilise Apache 2.0.55 avec les modules suivant :
- DAV/2
- SVN/1.3.1
- mod_fastcgi/2.4.2
- mod_jk/1.2.14
- mod_python/3.1.4
- Python/2.4.3
- PHP/5.1.2
- mod_perl/2.0.2
- Perl/v5.8.7
Note : ces scripts fonctionnent cependant tout à fais normallemenrt chez mon hébergeur .
Il doit y avoir une manipulation mais j'avoue sécher sur le coup , j'ai chercher sur google.com/linux mais sans succès ; alors peut-être qu'un membre de la communauté ubuntu-fr à déjà rencontré ce soucis ?
Dernière modification par freenux.be (Le 29/07/2006, à 05:08)
Informations générales pour les débutants ... et les autres ;-)
AMD Athlon II X2 245 - 8Go DDR2 - 2.5To SATA2 - ATi Radeon HD3200
Hors ligne
#2 Le 30/07/2006, à 01:03
- redsectors
Re : Exécution de script perl (.pl) sur localhost
coucou,
l'option ExecCGI doit être positionnée dans ta configuration apache de même
que le handler cgi doit être ajusté pour les scripts en .pl
ex:
AddHandler cgi-script .pl
AddHandler cgi-script .cgi
<Directory /bla/bla>
Options ExecCGI Indexes Includes FollowSymLinks
</Directory>
@+
Acer 5315 Core duo 2 upgrade
Broadcom Corporation BCM4311 802.11b/g Wireless LAN Controller
Adaptateur USB TNT Intuix S800
Powered by Ubuntu !
Hors ligne
#3 Le 30/07/2006, à 15:13
- freenux.be
Re : Exécution de script perl (.pl) sur localhost
Bon apparament c dejà mieux , mais depuis ke j'ai relancé le serveur je ne peut plus accéder au répertoire /var/www/cgi-bin en effet ca ose me répondre via le navigateur firefox "Erreur 403 - Forbidden :
You don't have permission to access /cgi-bin/ on this server." ; faut-il laisser www-data comme propriétaire & groupe propriétaire de ce répertoire ?
Disons que je ne peux accéder au répertoire qu'en utilisant "gksudo nautilus" et plus depuis l'arborescence via le navigateur internet.
Voici mes ajouts dans /etc/apache2/apache2.conf
# To use CGI scripts outside /cgi-bin/:
#
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
et en fin de fichier juste avant : "# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*" j'ai ajouté celà :
# Répertoire execution PERL et CGI
#
<Directory /var/www/cgi-bin>
Options ExecCGI Indexes Includes FollowSymLinks
</Directory>
Dernière modification par freenux.be (Le 30/07/2006, à 15:34)
Informations générales pour les débutants ... et les autres ;-)
AMD Athlon II X2 245 - 8Go DDR2 - 2.5To SATA2 - ATi Radeon HD3200
Hors ligne
#4 Le 30/07/2006, à 16:43
- redsectors
Re : Exécution de script perl (.pl) sur localhost
ma configuration était destinée à pouvoir executer des scripts en dehors
du cgi-bin.
Si tu mets tes scripts dans le /var/www/cgi-bin, plus besoin de la directive
Directory avec l'option ExecCGI. En effet, une directive ScriptAlias doit déja
être présente dans ton fichier de configuration.
Concernant un eventuel de droit, il faut juste verifier que l'utilisateur www-data
puisse avoir un accès r+x dans le répertoire.
ps : quelle url appelles-tu pour avoir l'erreur ?
@+
Acer 5315 Core duo 2 upgrade
Broadcom Corporation BCM4311 802.11b/g Wireless LAN Controller
Adaptateur USB TNT Intuix S800
Powered by Ubuntu !
Hors ligne
#5 Le 03/08/2006, à 23:57
- freenux.be
Re : Exécution de script perl (.pl) sur localhost
Bonjour redsectors ^^
Alors dans firefox je tape :
http://localhost/cgi-bin/recherche.pl
ou
http://localhost/cgi-bin/recherche.pl?admin
- dans les deux cas j'obtiens :
"Erreur 403 - Forbidden :
You don't have permission to access /cgi-bin/ on this server."
Est propriétaire du fichier & du groupe : www-data
P.S.: Le répertoire /cgi-bin/ à été créé par mes soins celui-ci n'était pas présent.
voilà pour les détails manquants ^^
Dernière modification par freenux.be (Le 04/08/2006, à 00:05)
Informations générales pour les débutants ... et les autres ;-)
AMD Athlon II X2 245 - 8Go DDR2 - 2.5To SATA2 - ATi Radeon HD3200
Hors ligne
#6 Le 05/08/2006, à 15:57
- T-BnT
Re : Exécution de script perl (.pl) sur localhost
Bonjour tout le monde, j'ai une petite question un peu hors sujet (désolé mais j'ai pas trouvé d'autres endroits pour demander...:rolleyes:) : je viens d'installer PHP 5.0, MySQL, etc en suivant les instructions de la documentation mais je ne comprends pas où je dois mettre mes fichiers PHP pour pouvoir les lire. Sous windows, je les mettais dans un fichier nommé "www", sous ubuntu, j'ai trouvé ce fichier dans /var/www mais quand je mets un fichier dedans, ils me disent que je n'ai pas le droit de les mettre là..
Si quelqu'un sait m'aider, ce serait super cool, merci
Hors ligne
#7 Le 07/08/2006, à 13:15
- freenux.be
Re : Exécution de script perl (.pl) sur localhost
Salut T-BnT,
Pour placer tes fichiers dans "/var/www" il faut que tu sois en root ,
pour celà en mode terminal tape :
gksudo nautilus
En parcourant tes répertoires via la fenêtre qui s'ouvre tu peux aller où tu veux sans restriction mais attention si tu supprime un fichier par erreur celui-ci est perdu à tout jamais.
la prochaine fois crée un nouveau message stp ^^
Bon en attendant j'ai toujours pas solution à mon soucis ...
Informations générales pour les débutants ... et les autres ;-)
AMD Athlon II X2 245 - 8Go DDR2 - 2.5To SATA2 - ATi Radeon HD3200
Hors ligne
#8 Le 08/09/2006, à 15:15
- m492001
Re : Exécution de script perl (.pl) sur localhost
j'ai un probleme sous perl:
j'ai crée un répertoire dans /var/www/cg-bin/
où j'ai mes script cgi et .pl
ce pendant quand je lance un script .cgi rien ne marche et on me dit que je l'ai pas le droit approprié ( erreur visible dans le navigateur) alors que mes script .pl s'executent tres bien
quelquun aurait une solution svp?
merci de votre reponse
#9 Le 11/09/2006, à 19:21
- davidbo5
Re : Exécution de script perl (.pl) sur localhost
Essayes en première ligne avec le -w qui active les warnings à l'exécution t qui permet de lancer les cgi dans le répertoire cgi-bin.
#!/usr/bin/perl -w
Si installer par défaut avec Ubuntu ton script fonctionnera normalement
Portable Fujitsu Siemens Amilo M1451 : Ubuntu Hardy 32bits
Hors ligne
#10 Le 27/03/2007, à 00:07
- rubens
Re : Exécution de script perl (.pl) sur localhost
Bonjour,
Je rencontre un problème similaire : j'ai placé mon script monscript.pl dans /usr/lib/cgi-bin qui correspond au réperoire virtuel indiqué par la directive ScriptAlias dans mon fichier de configuration /etc/apache2/sites-available/default.
J'ai donné à wwww-data les droits r+x sur ce script.
Quand je charge l'URL http://localhost/cgi-bin/monscript.pl, j'obtiens une invite pour télécharger le fichier : il ne s'exécute pas côté serveur.
Hors ligne
#11 Le 27/03/2007, à 12:33
- rubens
Re : Exécution de script perl (.pl) sur localhost
En relisant la documentation de mod_perl j'ai amélioré la directive Directory de ScriptAlias : tout fonctionne donc bien bien maintenant.
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
Il y avait aussi un problème sur le renvoi d'en-tête par Apache du fait que j'utilisais une écriture différée dans mon script. Mais je n'en parle pas ici puisque ce n'est pas le sujet.
Hors ligne
#12 Le 28/03/2007, à 20:27
- rubens
Re : Exécution de script perl (.pl) sur localhost
Attention, en relisant cette discussion, je réalise que plusieurs d'entre vous ont créé un répertoire cgi-bin à la racine, c'est-à-dire sous /var/www ; puis déclarent ce répertoire comme un alias dans la directive ScriptAlias.
Cette façon de faire ne me semble pas conforme et je pense que c'est pour cette raison qu'Apache n'autorise pas l'exécution de scripts dans ce répertoire.
La manière conforme consiste à faire pointer l'alias (ou répertoire virtuel) vers un répertoire situé ailleurs dans l'arborescence du système. Par défaut, ce répertoire existe déjà dans /usr/lib/cgi-bin/ et il suffit d'indiquer ceci dans la directive:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin/">
etc.
Si cela peut aider, j'ai publié récemment un opuscule sur la configuration D'Apache (pour Windows et GNU/Linux : exemples sur Ubuntu).
http://pedagogie.ac-montpellier.fr/tice … Apache.pdf
Dernière modification par rubens (Le 28/03/2007, à 20:27)
Hors ligne
#13 Le 24/04/2008, à 19:40
- lavince
Re : Exécution de script perl (.pl) sur localhost
Bonjour,
Il me semble que j'ai fait tout ce qui est indiqué de ce post, mais le problème persiste chez moi...
Il me demande si je veut télécharger le fichier .pl
Mon fichier p1.pl commence par la ligne :
#!/usr/bin/perl -w
J'ai ajouté dans le fichier default dans le répertoire /etc/apache2/sites-available :
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
SetHandler perl-script
AddHandler cgi-script .pl
AddHandler cgi-script .cgi
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
Et sur http://localhost
J'ai bien les sites que j'ai installé et en dessous :
Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6.3 mod_perl/2.0.2 Perl/v5.8.8 Server at localhost Port 80
Ce qui me fait croire que perl est bien installé. Je ne sais donc plus quoi faire....
Merci d'avance de votre aide.
#14 Le 25/04/2008, à 20:05
- lavince
Re : Exécution de script perl (.pl) sur localhost
help me
#15 Le 17/06/2009, à 15:36
- Ubooonty
Re : Exécution de script perl (.pl) sur localhost
Bonjour, voila, je tourne en rond depuis plus de 2 heures, j'ai le droit à un beau petit " Error 403 - Forbidden " .
http://localhost/cgi-bin/test.pl
J'ai creer un lien symbolique dans /var/www :
ln -s /usr/lib/cgi-bin /var/www/cgi-bin
Le mod perl est bien lancé : mod_perl/2.0.4 Perl/v5.10.0
et j'ai bien sa dans /etc/apache2/sites-available et /etc/apache2/sites-enabled :
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
#16 Le 19/06/2009, à 00:50
- Ubooonty
Re : Exécution de script perl (.pl) sur localhost
Personne ? j'ai vraiment besoin d'aide...