Apache et modwsgi offrent une solution idéale pour héberger des applications web basées sur Python. Que vous gériez un petit site ou un système d’hébergement professionnel, modwsgi offre des capacités de haute performance. Dans ce tutoriel, nous vous guiderons à travers le processus d’installation et de configuration de mod_wsgi avec le serveur web Apache sur Ubuntu 22.04 LTS.
Mise à Jour de Votre Système
D’abord, assurons-nous que votre système est à jour. Ouvrez un terminal et exécutez les commandes suivantes :
sudo apt update -y sudo apt upgrade -y
Ces commandes mettront à jour votre système avec les dernières versions de logiciels. Une fois la mise à jour terminée, redémarrez votre système pour appliquer les modifications.
Installation de Python
Python est généralement préinstallé sur Ubuntu 22.04. Cependant, si vous ne l’avez pas installé, vous pouvez le faire en exécutant la commande suivante :
sudo apt install python3 libexpat1 -y
Cette commande installera Python 3 et les dépendances nécessaires. Une fois l’installation terminée, vous pouvez passer à l’étape suivante.
Installation d’Apache et mod_wsgi
Maintenant, installons le serveur web Apache et le module Python mod_wsgi. Exécutez la commande suivante :
sudo apt install apache2 apache2-utils ssl-cert libapache2-mod-wsgi-py3 -y
Cette commande installera à la fois Apache et modwsgi, ainsi que toutes les dépendances requises. Une fois l’installation terminée, vous êtes prêt à configurer modwsgi.
Configuration de mod_wsgi
Pour configurer mod_wsgi, vous devrez créer un script Python qui sera servi par le serveur web Apache. Pour des raisons de démonstration, nous créerons un simple script “Hello World”.
Ouvrez un terminal et exécutez la commande suivante pour créer le script :
sudo nano /var/www/html/wsgitest.py
Cette commande ouvrira un éditeur de texte. Collez les lignes suivantes dans l’éditeur :
def application(environ, start_response): status = '200 OK' output = b'Hello Howtoforge!\\\n' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]
Sauvegardez le fichier et quittez l’éditeur de texte. Ensuite, changez la propriété du fichier en www-data
en utilisant la commande suivante :
sudo chown www-data:www-data /var/www/html/wsgitest.py sudo chmod 775 /var/www/html/wsgitest.py
Maintenant, modifions le fichier de configuration de l’hôte virtuel Apache pour servir le script Python. Exécutez la commande suivante :
sudo nano /etc/apache2/sites-enabled/000-default.conf
Cette commande ouvrira le fichier de configuration dans un éditeur de texte. Ajoutez la ligne suivante avant la ligne “ :
WSGIScriptAlias /wsgi /var/www/html/wsgitest.py
Le fichier d’hôte virtuel complet devrait ressembler à ceci :
# The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf WSGIScriptAlias /wsgi /var/www/html/wsgitest.py # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Sauvegardez les modifications et quittez l’éditeur de texte. Enfin, redémarrez le serveur web Apache pour appliquer les modifications de configuration :
sudo systemctl restart apache2
Test de la Configuration
Avec le serveur web Apache configuré, testons notre script Python. Ouvrez un navigateur web et entrez l’URL suivante, en remplaçant your-server-ip
par l’adresse IP de votre serveur :
http://your-server-ip/wsgi
Vous devriez voir une page blanche avec les mots “Hello Howtoforge!” affichés. Félicitations ! Vous avez maintenant un serveur web Apache correctement configuré pour exécuter des applications Python en utilisant mod_wsgi.
Dans ce tutoriel, nous avons couvert l’installation et la configuration de modwsgi avec le serveur web Apache sur Ubuntu 22.04. Avec modwsgi, vous pouvez facilement déployer et exécuter des applications web Python. N’oubliez pas de déployer votre propre application web Python dans le répertoire /var/www/html/
et de mettre à jour la ligne WSGIScriptAlias
dans le fichier /etc/apache2/sites-enabled/000-default.conf
en conséquence.
Si vous cherchez des solutions d’hébergement cloud fiables et évolutives, envisagez Shape.host. Avec leur VPS SSD Linux, vous pouvez garantir un hébergement haute performance pour vos applications Python.