Cómo ejecutar scripts Python con Apache y mod_wsgi en Ubuntu
mod_wsgi es un módulo de Apache que se puede utilizar para servir scripts Python sobre HTTP a través del servidor web Apache. Puedes desplegar fácilmente aplicaciones escritas con frameworks y herramientas como Django, Web.py, Werkzug, Chery.py, TurboGears y Flask utilizando mod_wsgi.
En este tutorial, aprenderemos a instalar y configurar mod_wsgi con el servidor Apache en el servidor Ubuntu 18.04 LTS (Bionic Beaver).
Requisitos
- Un servidor con Ubuntu 18.04.
- Un usuario no root con privilegios sudo.
- Una dirección IP estática 192.168.43.229 configurada en tu servidor.
Instalar Apache y mod_wsgi
Antes de empezar, necesitarás instalar algunos paquetes necesarios en tu sistema.
Puedes instalarlos todos ejecutando el siguiente comando:
sudo apt-get install python libexpat1 apache2 apache2-utils ssl-cert -y
Una vez instalados todos los paquetes necesarios, puedes proceder a instalar mod_wsgi con el siguiente comando:
sudo apt-get install libapache2-mod-wsgi -y
Configurar Apache para mod_wsgi
A continuación, tendrás que crear un script python dentro del directorio raíz web de Apache para servir a través del módulo de Apache mod_wsgi.
Puedes hacerlo con el siguiente comando
sudo nano /var/www/html/wsgy.py
Añade las siguientes líneas:
def application(environ,start_response): status = '200 OK' html = '<html>\n' \ '<body>\n' \ '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \ 'Welcome to mod_wsgi Test Page\n' \ '</div>\n' \ '</body>\n' \ '</html>\n' response_header = [('Content-type','text/html')] start_response(status,response_header) return [html]
Guarda y cierra el archivo. A continuación, da los permisos adecuados al archivo wsgi.py:
sudo chown www-data:www-data /var/www/html/wsgy.py sudo chmod 755 /var/www/html/wsgy.py
A continuación, tendrás que configurar Apache para que sirva este archivo a través del protocolo HTTP. Puedes hacerlo creando el archivo wsgi.conf:
sudo nano /etc/apache2/conf-available/wsgi.conf
Añade las siguientes líneas:
WSGIScriptAlias /wsgi /var/www/html/wsgy.py
Guarda y cierra el archivo. A continuación, da los permisos adecuados al archivo wsgi.py:
A continuación, activa la configuración mod-wsgi y reinicia el servicio Apache con el siguiente comando:
sudo a2enconf wsgi sudo systemctl restart apache2
Prueba los scripts Python en Apache con mod-wsgi
Ahora, abre tu navegador web y escribe la URL http://example.com/wsgi. Serás redirigido a la siguiente página: