Python en CGi avec Apache
Python peut être utilisé pour produire des pages web. Les différentes possibilités sont présentées ici : http://docs.python.org/3/howto/webservers.html
Pour utiliser python pour produire des pages web dynamiques simplement on peut utiliser CGI (exécution de script par le serveur web). Attention, cette installation pose des problèmes de performance et de sécurité : tous les scripts de tous les utilisateurs sont executés par le serveur web en tant que l’utilisateur serveur web. Il doit donc avoir les droits d’execution sur les répertoires qui contiennent les scripts, les droits de lecture et d’exécution sur les scripts et éventuellement les droits de lecture/écriture sur les fichiers dans lesquels les scripts veulent écrire.
Une meilleure solution est d’utiliser un module apache spécifique comme wsgi.
CGI simple
La marche à suivre est la suivante :
- Installer apache
- Activer les modules apache qui gèrent :
- les répertoires web des utilisateurs (
public_html
) :sudo a2enmod userdir
- les script cgi :
sudo a2enmod cgi
- Autoriser les utilisateurs à exécuter des scripts avec les extensions
.cgi
ou.py
<Directory /home/*/public_html> Options +ExecCGI AddHandler cgi-script .cgi .py </Directory>
On peut ensuite créer des scripts de la forme suivante :
- test.py
#!/usr/bin/python3 #Pour avoir les erreurs python en HTML import cgitb cgitb.enable() #Pour indiquer au navigateur le type mime du résultat print('Content-type: text/html') print() # Le programme print('<html><body>') print('<p>',(3+2),'</p>') print(''' <article> <h2>test<h2/> <p>...</p> </article> ''') print('</body></html>')
Python WSGI
A Compléter
https://code.google.com/p/modwsgi/
https://code.google.com/p/modwsgi/wiki/InstallationInstructions
apt-get install libapache2-mod-wsgi-py3
—- dataentry page —- type : Howto technologie_tags : Python, CGI, Apache