Web2py, Python3 y Apache2

Si seguiste mi tutorial de como hacer funcionar Web2py en Apache2 y justo tu programa está Python 3.x seguramente te va a pasar que la app no funcione. El problema surge porque mod-wsgi viene por defecto para python 2. El tema se soluciona fácilmente instalando mod-wsgi-py3 y reiniciando apache.

sudo apt-get install libapache2-mod-wsgi-py3 ; sudo service apache2 restart

¡Y listo el pollo!

Configuración web2py para Apache 2.4.29 en Ubuntu

Si, vuelvo hoy después de dejar andando definitivamente web2py en la VPS. Les comento el problema que encontré para que ustedes no caigan: La documentación de web2py es para Apache 2.0, por lo que la misma NO FUNCIONA EN APACHE 2.4.29. La configuración que me anduvo fue la siguiente:
<VirtualHost *:80>
  ServerName web2py.tudominio.com.ar
  WSGIDaemonProcess web2py user=www-data group=www-data display-name=%{GROUP}
  WSGIProcessGroup web2py
  WSGIScriptAlias / /RUTA/A/TU/SITIO/web2py/wsgihandler.py
  WSGIPassAuthorization On
  <Directory /RUTA/A/TU/SITIO/web2py>
    AllowOverride None
    Require all denied
    <Files wsgihandler.py>
        Require all granted
    </Files>
  </Directory>

  AliasMatch ^/([^/]+)/static/(.*) \
           /RUTA/A/TU/SITIO/web2py/applications/$1/static/$2
  <Directory /RUTA/A/TU/SITIO/web2py/applications/*/static/>
    Options -Indexes
    Require all granted
  </Directory>

  <Location /admin>
  #Deny from all
  </Location>

  <LocationMatch ^/([^/]+)/appadmin>
  #Deny from all
  </LocationMatch>

  CustomLog /var/log/apache2/web2py.log common
  ErrorLog /var/log/apache2/web2py-error.log
</VirtualHost>
<VirtualHost *:443>
  ServerName web2py.tudominio.com.ar
  SSLEngine on
  SSLCertificateFile TUCERTIFICADOFC.pem
  SSLCertificateKeyFile TUCERTIFICADOPRIV.pem

  WSGIProcessGroup web2py
  WSGIScriptAlias / /RUTA/A/TU/SITIO/web2py/web2py/wsgihandler.py

  <Directory /RUTA/A/TU/SITIO/web2py/web2py>
    AllowOverride None
    Order Allow,Deny
    Deny from all
    Require all granted
    <Files wsgihandler.py>
      Allow from all
    </Files>
  </Directory>

  AliasMatch ^/([^/]+)/static/(.*) \
        /RUTA/A/TU/SITIO/web2py/applications/$1/static/$2

  <Directory /RUTA/A/TU/SITIO/web2py/applications/*/static/>
    Order Allow,Deny
    Allow from all
    Require all granted
  </Directory>

  CustomLog /var/log/apache2/access.log common
  ErrorLog /var/log/apache2/error.log

</VirtualHost>
  • No se olviden de reemplazar:
  • web2py.tudominio.com.ar por el dominio donde lo quieran ejecutar.
  • /RUTA/A/TU/SITIO por la ruta donde se encuentre instalado web2py
  • TUCERTIFICADOFC.pem y TUCERTIFICADOPRIV.pem por sus certificados SSL.

IMPORTANTE ¡No sé olviden de copiar wsgihandler.py (se encuentra en la carpeta handlers) al directorio raiz de web2py sino no va a funcionar! 🙂