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 souhaite que le fichier cgi_script.py suivant fonctionne correctement à l'aide de 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 fichiers à 755 pour cgi_script.py ainsi que le dossier que je suis l'héberger.
Essayez avec python -m CGIHTTPServer 8000
.
Notez que vous devez déplacer le script dans un répertoire cgi-bin
ou htbin
pour pouvoir être exécuté.
SO ne me permet pas de commenter, alors j'ajoute ceci comme réponse séparée, en plus de celle de rodrigo.
Vous pouvez utiliser un autre paramètre cgi_directories
dont la valeur par défaut est ['/cgi-bin', '/htbin']
. Plus d'infos ici
Pour moi, exécutez la commande python -m CGIHTTPServer 8000
au même niveau de menu avec cgi-bin et déplacez cgi_script.py dans le dossier cgi-bin. Dans le type de navigateur http: // localhost: 8000/cgi-bin/cgi_script.py
en Python3 la ligne de commande est simplement
python -http.server --cgi 8000
@ Bentley4 -ify vous ne pouvez toujours pas faire, Essayez d'importer cgi.
#! C:\Python34\python.exe -u Import cgi Print ("Type de contenu: text/html")
HTH
Lorsque j'ai rencontré ce problème, j'ai constaté que, selon le répertoire dans lequel vous vous trouvez lorsque vous exécutez la commande python -m CGIHTTPServer 8000
, les résultats sont différents. En tentant d'exécuter la commande dans le répertoire cgi-bin, le navigateur a continué à renvoyer le code de script brut. une fois que j'ai gravé un niveau supérieur et exécuté la commande python -m CGIHTTPServer 8000
de nouveau, mon script a commencé à s'exécuter.