Probleme cgi-bin

Fermé
Hafed - 25 juil. 2004 à 19:44
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
- 27 juil. 2004 à 17:33
Bonjour,

Je suis sous Mandrake 9.0 et Apache.
je teste un programme CGI sur une page HTML (page HTML comprenant un lien vers un programme CGI).
Bon je tape mon URL : http://localhost/toto.html
puis je clique sur mon lien qui doit lancer mon programme CGI et là :
Forbidden
You don't have permission to access /cgi-bin/gbrowse on this server.

Bien entendu mon programme CGI a les droits d'exécution pour tout le monde.
J'ai jeté un coup d'oeil sur les fichiers de configuration apache mais je ne vois pas ce qui cloche (je ne suis pas spécialiste non plus).


Merci pour votre aide,

Hafed

7 réponses

jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
957
26 juil. 2004 à 14:07
Ton fichier de configuration d'Apache contient-il une directive de configuration du genre (ici sous Debian)
<IfModule mod_alias.c>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory /usr/lib/cgi-bin/>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</IfModule>

Le répertoire est il lisible par le propriétaire du processus Apache?
(droits r-x minimum)

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
4
Salut,

Voici ce que je trouve dans le fichier commonhttpd.conf

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
ScriptAlias /protected-cgi-bin/ /var/www/protected-cgi-bin/

et dans le fichier httpd.conf :

<Directory /var/www/perl>
AllowOverride All
Options -Indexes FollowSymLinks MultiViews ExecCGI
Order allow,deny
Allow from all
</Directory>

<Directory /var/www/cgi-bin>
AllowOverride All
Options ExecCGI
</Directory>

<Directory /var/www/protected-cgi-bin>
AllowOverride None
Options ExecCGI
Order deny,allow
Deny from all
Allow from 127.0.0.1
#allow from .your_domain.com
</Directory>

Merci,

hafed
0
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
957
26 juil. 2004 à 15:16
Quelques pistes...
Je ne connais pas commonhttpd.conf
(est-ce un fichier prope à Mandrake?)
httpd.conf y fait-il référence (à l'aide d'un include p.ex?)
Il faudrait alors l'inclure dans httpd.conf, ou définir le ScriptAlias.

Ton fichier CGI est écrit en quel langage?
Si c'est un script, la ligne bang
#! chemin_vers_l_interpréteur
est-elle correcte?(place-toi dans le répertoire physique cgi-bin et lance le binaire ./nomducgi )

Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
1
Re -,

Oui httpd.conf fait reference a commonhttpd.conf :

Include conf/commonhttpd.conf


mon test CGI est écrit en perl (le fichier se termine avec l'extension .cgi) et débute par :
#!/usr/bin/perl

et son execution :
./test1.cgi
content-type:text/plain

Exécution test1.cgi terminée - OK

Merci pour ton aide.
C'est à s'arracher les cheveux !!!

Hafed
0
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
957
26 juil. 2004 à 18:20
As-tu examiné (ton|tes) fichiers log d'Apache.
less /var/log/apache/error.log
ou
tail /var/log/apache/error.log
(ou ce qui y correspond sous Mandrake) ?

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
1
Re -,

Désolé (coupure de la connection par mon FAI)

pour répondre au fichier log

[root@localhost httpd]# pwd
/var/log/httpd
[root@localhost httpd]# tail error_log
[Mon Jul 26 15:01:57 2004] [error] [client 10.0.0.10] client denied by server configuration: /var/www/cgi-bin/test1.cgi
[Mon Jul 26 15:22:25 2004] [error] [client 10.0.0.10] client denied by server configuration: /var/www/cgi-bin/test1.cgi
[Mon Jul 26 15:23:54 2004] [error] [client 10.0.0.10] client denied by server configuration: /var/www/cgi-bin/test1.cgi
[Mon Jul 26 15:49:15 2004] [error] [client 10.0.0.10] client denied by server configuration: /var/www/cgi-bin/test1.cgi
[Mon Jul 26 16:18:26 2004] [notice] caught SIGTERM, shutting down
[Mon Jul 26 17:41:57 2004] [notice] Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6mdk) sxnet/1.2.4 mod_ssl/2.8.10 OpenSSL/0.9.6g PHP/4.2.3 configured -- resuming normal operations
[Mon Jul 26 17:41:57 2004] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Jul 26 17:41:57 2004] [notice] Accept mutex: sysvsem (Default: sysvsem)
[Mon Jul 26 18:12:03 2004] [error] [client 10.0.0.10] File does not exist: /var/www/html/favicon.ico
[Mon Jul 26 18:12:05 2004] [error] [client 10.0.0.10] client denied by server configuration: /var/www/cgi-bin/test1.cgi
[root@localhost httpd]#

J'ai une autre question :
pourquoi je n'ai pas de dossier /var/log/apache
et pourquoi je n'ai pas non plus de dossier /usr/local/apache

(et pourtant apache tourne) ?

J'ai le sentiment que c'est PHP qui semble gérer le truc !

Merci,

Hafed
0
Re -,

rectificatif :

il faut lire le message d'erreur suivant :
You don't have permission to access /cgi-bin/test1.cgi on this server.

Merci.

Hafed
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
957
26 juil. 2004 à 22:56
L'emplacement des fichiers log est configuré dans ton fichier
httpd.conf
(directives ErrorLog, CommonLog...)
Les défauts dépendent éventuellement de ta distribution/des directives
de compilation d'Apache.
Il n'y a pas de soucis à ce sujet.
-------
[Mon Jul 26 18:12:05 2004] [error] [client 10.0.0.10] client denied by server configuration: /var/www/cgi-bin/test1.cgi
Il faudrait donc bien vérifier la config du serveur.
Tu n'as pas de fichier .htaccess qui traîne dans /var/www/cgi-bin/ ?

Extrait de mon httpd.conf
<Directory /usr/lib/cgi-bin/>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
Essaye de modifier ta config en modifiant le répertoire
/usr/lib/cgi-bin en
/var/www/cgi-bin

N'oublie pas de redémarer ton serveur !

Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
957
26 juil. 2004 à 23:02
Chez moi un bête
horus:/etc/apache# cat /usr/lib/cgi-bin/test
#!/bin/sh
echo "Content-Type: text/html"
echo
echo "<html><body>"
echo "Hello World<br>"
env | sed -e "s/$/<br>/"
echo "</body></html>"

fonctionne!
(à ne pas mettre en public bien sûr)
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0
Salut Jisisv,

Pas de fichier .htaccess dans /var/www/cgi-bin
Je vais faire d'autres tests et je reviens sur le forum dans l'après-midi.

Merci encore à toi pour ton aide.

@+,

Hafed
0
Hourra !!!!
Yeeessssssss !!!!
Hulahup barbatruc !!!!

Ca marche !!!

après 100000 manips et pour résumer il y avait deux choses :

1) rajouter dans le fichier commonhttpd.conf, au niveau du directory cgi-bin, les deux lignes
Order allow,deny
allow from all

2) les scripts CGI doivent être en Lecture et Exécution (et non pas seulement en Exécution).

Je me doutais bien que c'était tout bête mais bon une fois qu'on le sait.

Alors encore un grand merci à toi Jisisv et chapeau bas.

Hafed
0
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
957
27 juil. 2004 à 17:33
Bien vu.
C U later

Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
0