Maison >Opération et maintenance >Apache >Comment configurer Apache pour travailler avec Python à l'aide de mod_wsgi?
La configuration d'Apache avec mod_wsgi implique plusieurs étapes:
Installez les packages nécessaires: commencez par installer Apache lui-même, ainsi que le module APACH mod_wsgi
et Python. Les commandes exactes dépendent de votre système d'exploitation. Pour les systèmes Debian / Ubuntu, vous utiliseriez généralement:
<code class="bash">sudo apt update sudo apt install apache2 libapache2-mod-wsgi-py3 python3-pip</code>
Ajustez python3-pip
et le numéro de version (par exemple, python3.9-pip
) au besoin pour votre installation Python. Sur d'autres systèmes (comme Centos / Rhel, MacOS avec Homebrew, etc.), utilisez les commandes de gestionnaire de package approprié.
Créez une application WSGI: vous avez besoin d'un fichier python (par exemple, my_wsgi_app.py
) qui définit une application WSGI. Il s'agit d'un objet appelable qu'Apache utilisera pour gérer les demandes. Un exemple simple:
<code class="python">def application(environ, start_response): status = '200 OK' output = b"Hello, World!\n" response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]</code>
Configurer Apache: vous devez configurer Apache pour charger mod_wsgi
et le pointer vers votre application WSGI. Cela se fait en modifiant votre fichier de configuration Apache (généralement situé sur /etc/apache2/apache2.conf
ou /etc/apache2/sites-available/000-default.conf
, ou un emplacement similaire en fonction de votre système). Ajouter ou modifier ce qui suit dans un bloc <virtualhost></virtualhost>
:
<code class="apache"><virtualhost> ServerName your_domain_or_ip WSGIScriptAlias / /path/to/your/my_wsgi_app.py <directory> <files my_wsgi_app.py> Require all granted </files> </directory> </virtualhost></code>
Remplacez /path/to/your/
par le chemin réel vers votre fichier my_wsgi_app.py
et your_domain_or_ip
avec le nom de domaine ou l'adresse IP de votre serveur. La directive Require all granted
permet d'accéder au script; Pour la production, vous aurez besoin d'une sécurité plus robuste (voir ci-dessous).
Redémarrez Apache: après avoir enregistré le fichier de configuration Apache, redémarrez Apache pour appliquer les modifications:
<code class="bash">sudo systemctl restart apache2</code>
Les pièges courants comprennent:
WSGIScriptAlias
ou <directory></directory>
empêchera Apache de trouver votre application WSGI. Utilisez des chemins absolus pour éviter l'ambiguïté.mod_wsgi
) est compilé avec la même version Python que votre application utilise. Mélanger les versions peut provoquer des accidents ou un comportement inattendu.<virtualhost></virtualhost>
ou en utilisant d'autres directives Apache pour éviter les conflits.with
instructions) pour fermer correctement les fichiers et autres ressources.Les améliorations des performances peuvent être réalisées grâce à plusieurs stratégies:
WSGIDaemonProcess
). Cela réduit considérablement les frais généraux de la création de processus et améliore la réactivité. Configurez-le dans votre fichier Apache Config, en spécifiant le nombre de processus et de threads.redis
ou memcached
.asyncio
pour améliorer la concurrence et le débit.La sécurisation de votre demande implique plusieurs étapes cruciales:
.htaccess
, Allow
et Deny
les directives) pour limiter l'accès à des répertoires et des fichiers spécifiques. Évitez d'exposer directement des fichiers sensibles ou des répertoires au Web.N'oubliez pas de remplacer les valeurs d'espace réservé (chemins, noms de domaine) par vos détails de configuration réels. Testez toujours vos modifications approfondies dans un environnement de mise en scène avant de se déployer en production.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!