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:

Página de prueba de Python

Enlaces

También te podría gustar...