Comment héberger un script cgi Python avec 'python-m SimpleHTTPServer 8000' ou 'python-m CGIHTTPServer 8000'?

Lorsque j'exécute python -m SimpleHTTPServer 8000 ou python -m CGIHTTPServer 8000 dans mon shell, j'héberge le contenu de mon répertoire actuel sur internet.

Je voudrais faire ce qui suit cgi_script.py fonctionne correctement en utilisant la commande ci-dessus dans la ligne de commande lorsque je navigue vers 192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python
print "Content-Type: text/html"
print
print """
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""

Mais ce script est affiché littéralement et pas seulement le " Hello World!" partie. Btw j'ai changé les autorisations de fichier à 755 pour cgi_script.py ainsi que le dossier dont je l'héberge.

21
demandé sur Bentley4 2012-05-01 14:18:53

6 réponses

Essayez avec python -m CGIHTTPServer 8000.

Notez que vous devez déplacer le script à un cgi-bin ou htbin répertoire afin d'être exécutable.

33
répondu rodrigo 2012-05-01 11:15:42

Donc ne me permet pas de commenter donc j'ajoute ceci comme une réponse séparée, en plus de rodrigo.

Vous pouvez utiliser un autre paramètre {[0] } qui vaut par défaut ['/cgi-bin', '/htbin']. Plus d'infos ici

6
répondu spawnedc 2013-06-02 10:07:29

Quand j'ai rencontré ce problème, j'ai trouvé que selon le répertoire dans lequel vous vous trouvez lorsque vous exécutez la commande python -m CGIHTTPServer 8000 donne des résultats différents. Lorsque vous tentez d'exécuter la commande dans le répertoire cgi-bin, le navigateur continue de renvoyer le code de script brut. une fois que j'ai cd'ed un niveau plus élevé et exécuté la commande python -m CGIHTTPServer 8000 à nouveau mon script a commencé à s'exécuter.

0
répondu Marquis Blount 2014-01-15 23:21:44

@Bentley4-sivous n'êtes toujours pas capable de faire, essayez d'importer cgi.

#!C:\Python34\python.exe-u import cgi print ("Content-type:text/html")

HTH

0
répondu sabiyur 2014-12-22 17:53:01

En Python3, la ligne de commande est simplement

python -http.server --cgi 8000
0
répondu AchimG 2015-02-12 09:35:58

Cela fonctionne pour moi, exécutez la commande python -m CGIHTTPServer 8000 même niveau de menu avec cgi-bin, et déplacez cgi_script.py dans cgi-bin folder.In type de navigateur http://localhost:8000/cgi-bin/cgi_script.py

0
répondu Brian 2016-01-23 08:42:42