Python Web
Habilitar Python en Apache2
Primero habilitamos los siguientes módulos:
sudo a2enmod cgi cgid
Luego instalamos el soporte:
sudo apt-get install libapache2-mod-python
Modificamos la configuración del servidor para habilitar el soporte para código python.
sudo nano -w /etc/apache2/conf-enabled/serve-cgi-bin.conf
Ahora buscamos la línea </Directory> y añadimos lo siguiente sobre esta
AddHandler cgi-script .py
Activando un directorio cgi para cada usuario
Si por algún motivo tienes habilitado el soporte para varios usuarios de apache, deberás hacer lo siguiente:
Para dar a cada usuario su propio directorio cgi-bin, puede usar una directiva <Directory> para activar cgi en un subdirectorio en particular del directorio home del usuario.
<Directory "/home/*/public_html/">
Options +ExecCGI
AddHandler cgi-script .py
PythonHandler mod_python.cgihandler
PythonDebug On
</Directory>
Editamos entonces el archivo userdir.conf
sudo nano /etc/apache2/mods-available/userdir.conf
y añadimos las líneas indicadas.
El archivo debería quedar así:
Todo esto, asumiendo que UserDir está configurado con la declaración public_html, según la instalación de apache para usuarios independientes.
Reiniciamos Apache:
sudo /etc/init.d/apache2 restart
Ahora crearemos un archivo de prueba.
El directorio por defecto para los script cgi es /usr/lib/cgi-bin/, pero como estamos en el ejemplo de multiples directorios usaremos el public_html.
nano ~/public_html/pytest.py
Añadimos lo siguiente:
#!/usr/bin/python
import cgi
import cgitb
cgitb.enable()
print 'Content-type: text/html\n\n'
print '<h1>Script de Prueba de Python</h1>'
print '<p>Hola Mundo</p>'
Hacemos el código ejecutable en caso de ser necesario
chmod +x ~/public_html/pytest.py
Ahora para abrir la página lo hacemos desde localhost/~pi/pytest.py.