Aquí et mostro com configurar Apache per servir una aplicació Flask. La configuració per a Django seria similar, però amb alguns canvis.
1 Crea run fitxer de configuració per al teu projecte Flask. Crea un fitxer, per exemple, /etc/apache2/sites-available/myflaskapp.conf
(Ubuntu/Debian) o /etc/httpd/conf.d/myflaskapp.conf
(Red Hat/CentOS), amb el següent contingut:
<VirtualHost *:80>
ServerAdmin webmaster@yourdomain.com
ServerName yourdomain.com
DocumentRoot /var/www/myflaskapp
WSGIDaemonProcess myflaskapp python-path=/var/www/myflaskapp:/path/to/your/venv/lib/python3.x/site-packages
WSGIProcessGroup myflaskapp
WSGIScriptAlias / /var/www/myflaskapp/myflaskapp.wsgi
<Directory /var/www/myflaskapp>
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Explicació:
ServerName
: El nom de domini per accedir a l’aplicació.DocumentRoot
: La ubicació del teu projecte.WSGIDaemonProcess
: Configura l’entorn del procés WSGI, especificant el camí al directori del projecte i la ubicació del teu entorn virtual.WSGIScriptAlias
: El fitxer.wsgi
que Apache utilitzarà per comunicar-se amb la teva aplicació Python.- Copilot proposa: sudo a2ensite myflaskapp.conf i sudo systemctl restart apache2
2 Crea el fitxer .wsgi
per a la teva aplicació Flask a /var/www/myflaskapp/myflaskapp.wsgi
amb el següent contingut:
import sys
import logging
from pathlib import Path
# Configura el directori del projecte
project_home = Path('/var/www/myflaskapp')
if project_home not in sys.path:
sys.path.insert(0, str(project_home))
from app import app as application # Assegura't que aquest camí apunti a l'aplicació Flask
logging.basicConfig(stream=sys.stderr)
3 Habilita la nova configuració (Ubuntu/Debian):
Nota: Canvia app
a la importació correcta si el teu fitxer principal de l’aplicació té un nom diferent o si utilitzes un mòdul diferent.
sudo a2ensite myflaskapp
4 Reinicia Apache per aplicar els canvis:
sudo systemctl restart httpd
3. Prova l’Aplicació
Si tens problemes, revisa els fitxers de registre d’Apache (/var/log/apache2/error.log
o /var/log/httpd/error_log
) per obtenir més informació sobre els errors que puguis estar trobant.
Després de reiniciar Apache, intenta accedir a la teva aplicació a través del navegador. Si has configurat tot correctament, hauries de veure la teva aplicació Python servida per Apache.