2017-07-02 8 views
0

Je suis un débutant donc j'ai vu quelques tutoriels. Je un script python comme first.pyComment lancer un script cgi python sur un serveur apache2 sous Ubuntu 16.04?

#!/usr/bin/python3 print "Content-type: text/html\n" print "Hello, world!"

Je dispose de plusieurs versions de Python sur mon ordinateur. Je ne pouvais pas comprendre mon répertoire cgi permis donc je collais ce code à trois endroits

  1. /usr/lib/cgi-bin/first.py

  2. /usr/lib/cups/cgi-bin/first.py

  3. /var/www/html/first.py

maintenant, quand je lance ce code dans le terminal, il fonctionne très bien, mais quand je tape

curl http://localhost/first.py

il crache simplement du texte simple et ne s'exécute pas.

J'ai donné toutes les autorisations à first.py

J'ai activé et démarré le serveur par les commandes

a2enmod cgi systemctl restart apache2

S'il vous plaît dire comment puis-je exécuter et ce qui se passe ici? Merci d'avance.

Répondre

0

Probablement le problème que vous utilisez en Python 3 et votre code est écrit en Python 2 Modifier le titre python2:

#!/usr/bin/python 
print "Content-type: text/html\n" 
print "Hello, world!" 
+0

Non, ce n'est pas le problème. J'ai essayé ça. – Harsh

0

Ces lignes doivent être dans votre fichier de configuration du site apache2 (pour exemple /etc/apache2/sites-available/default-ssl.conf si votre site utilise le protocole HTTPS):

<Directory /var/www/yoursite/yourdir/> 
    Options +ExecCGI 
    PassEnv LANG 
    AddHandler cgi-script .py 
</Directory> 

les Ajouter pour le répertoire que vous voulez et redémarrez apache2. Vous devrez peut-être également ajouter

AddHandler python-program .py 

à votre fichier httpd.conf s'il n'est pas déjà présent.

Une discussion plus détaillée concernant les scripts python et apache2 est disponible ici: Executing a Python script in Apache2.