Forum Linux.debian/ubuntu Faire marcher les CGI

Posté par  .
Étiquettes :
0
7
fév.
2008
Bonjour,

depuis hier, je me rends fou à essayer de faire tourner les CGI sur ma machine avec Apache2 sur Debian Etch.

J'ai d'abord essayer de le faire dans le public_html de mon utilisateur, mais en vain, je me suis donc rabattu vers le virtual host par défaut qui permet logiquement de faire tourner les CGI si ils sont situés dans /usr/lib/cgi-bin.

Pour info, mon CGI python est tiré du bouquin Programmin Python 3rd edition et contient

#!/usr/bin/python

text = """Content-type: text/html

CGI 101
A Second CGI script

Hello, CGI World!



"""

print text

, est appelé tutor1.cgi, a les droits qu'il faut (je pense)

# ls -la /usr/lib/cgi-bin
drwxr-xr-x 2 www-data www-data 4096 2008-02-07 10:07 .
drwxr-xr-x 176 root root 77824 2008-02-07 10:25 ..
-rwxr-xr-x 1 www-data www-data 179 2008-02-06 17:19 tutor1.cgi


Pour autant, j'ai toujours dans /var/log/apache2/error.log

[Thu Feb 07 10:29:53 2008] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/usr/lib/cgi-bin/tutor1.cgi' failed
[Thu Feb 07 10:29:53 2008] [error] [client 127.0.0.1] Premature end of script headers: tutor1.cgi


Que faire ?
Qu'ai-je oublié ?

au cas ou

# dpkg -l |grep apache
ii apache2-mpm-prefork 2.2.3-4+etch3 Traditional model for Apache HTTPD 2.1
ii apache2-utils 2.2.3-4+etch3 utility programs for webservers
ii apache2.2-common 2.2.3-4+etch3 Next generation, scalable, extendable web server
ii libapache2-mod-perl2 2.0.2-2.4 Integration of perl with the Apache2 web server
ii libapache2-mod-php5 5.2.0-8+etch10 server-side, HTML-embedded scripting language (apache 2 module)
ii libapache2-mod-python 3.2.10-4 Apache 2 module that embeds Python within the server
  • # \r

    Posté par  (site web personnel) . Évalué à 1.

    A tout hasard, des \r à la fin des lignes?
    • [^] # Re: \r

      Posté par  . Évalué à 1.

      comment ça ?
      tu veux dire le problème fin de ligne Dos-Unix ?
      hum.....
      je ne sais pas, mais en effet, en recréant un fichier identique, tout d'un coup ça marche.
      ça règle au moins le problème pour ce fichier de test tutor1.cgi, reste plus qu'à comprendre le problème sur mon script original qui lui fait des choses beaucoup plus compliqué !

      merci
      • [^] # Re: \r

        Posté par  (site web personnel) . Évalué à 1.

        Le script peut très bien avoir des fins de lignes unix. Mais si ce qu'il affiche n'a pas les retours en \r\n, le handler d'apache ne comprend pas.
  • # apache2.conf

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Tu as cette ligne qui est en commentaire?

    #AddHandler cgi-script .cgi

    La gelée de coings est une chose à ne pas avaler de travers.

    • [^] # Re: apache2.conf

      Posté par  . Évalué à 1.

      oui, la partie intéressante de mon sites-available/default contient

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
      <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
      AddHandler cgi-script .cgi
      Order allow,deny
      Allow from all
      < /Directory>


      selon toute vraisemblance (cf comment précédent), le problème semble lié au script et non pas à Apache, donc merci à tous et désolé pour le bruit.
      • [^] # Re: apache2.conf

        Posté par  . Évalué à 0.

        me semble pourtant que si tu veux jouer un python dans un cgi,
        il doit falloir lui donner une extension qui va bien

        pour le php, on met
        Addhandler xxxx .php .php3 .php4

        (me souviens plus le xxx)

        donc si ca se trouve il faut faire un truc similaire pour que le .py soit interpretré par ton apache.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.