Maison >Opération et maintenance >Apache >Comment combiner Flask avec Apache
Le serveur Web de développement fourni avec Flask fonctionne très mal, répond lentement et exécute un proxy inverse directement via nginx, ne parvenant souvent pas à répondre aux demandes. Il existe deux serveurs qui peuvent être utilisés dans un environnement de production, ont de bonnes performances et prennent en charge les programmes Flask, à savoir Gunicorn et uWSGI, mais ces deux modules ne prennent pas en charge Windows.
Nous devons donc utiliser le module mod_wsgi pour permettre à flask d'être déployé sur Apache. Le module mod_wsgi est un module Apache FastCGI écrit en python. (Apprentissage recommandé : utilisation d'Apache)
Après le téléchargement, décompressez-le pour obtenir Apache24, ouvrez-le dans le fichier de configuration et ouvrez-le avec le texte. J'utilise Atom pour l'ouvrir. ici.
Expliquons maintenant ce que nous devons modifier :
1. ServerRoot "c:/Apache24" : Remplacez-le par votre propre adresse de répertoire
2. Écoutez 8080 : Port. Non. Configuration, certains utilisateurs peuvent constater que leur port 80 est occupé, qui peut être occupé par IIS ou SQL Server. Nous pouvons modifier ce numéro de port pour faciliter les tests
Modifier l'autorisation du répertoire
Original :<Directory /> AllowOverride none Require all denied </Directory>Après modification :
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory>4. Modifiez le chemin racine du document vers votre propre chemin de fichier
DocumentRoot "c:/Apache24/htdocs" <Directory "c:/Apache24/htdocs">5. Configuration du module Mod (points clés)
(1) Installez d'abord le fichier mod.whl téléchargé :
pip install
(2) Après une installation réussie, exécutez la commande suivante :
mod_wsgi-express module-config
(3) Une fois la commande ci-dessus exécutée avec succès, nous pouvons obtenir trois informations :
(4) Utilisez ensuite ces trois informations pour remplacer le fichier .so et ajoutez-le au fichier de configuration Apache Medium : 6. Site de configuration (point clé) :# <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file.Parce que je suis une personne qui ne sait pas configurer Apache, je d'abord J'ai vu la configuration dans le lien de référence
Copiez le paragraphe suivant au bas du fichier de conf et remplacez le chemin par votre propre chemin
<VirtualHost *:8080 > ServerAdmin example@xx.com DocumentRoot E:\Environment\Apache\Apache24\text_web <Directory "E:\Environment\Apache\Apache24\text_web"> Order allow,deny Allow from all </Directory> WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi </VirtualHost>
Les instructions de configuration du site ci-dessus :
(1) Chemin du projet (Il n'est pas nécessaire qu'il soit placé dans le répertoire apache) :
DocumentRoot E:\Environment\Apache\Apache24\text_web
(2)fichier de démarrage du module wsgi (point clé) :
WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
Remarque : le "/" ici est obligatoire et représente le préfixe de l'url. Il peut être modifié ultérieurement selon les besoins.
(3) Autorisations du chemin du projet : définies pour autoriser tous les
<Directory "E:\Environment\Apache\Apache24\text_web"> Order allow,deny Allow from all </Directory>
À ce stade, notre fichier httpd.conf a été configuré.
2. Saisissez la configuration du projet flask :
Répertoire du projet :
1 , description du fichier test.wsgi :
import sys sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #项目路径
from test import app #Introduisez le nom de notre projet flask dans
application = app #applcation ne doit pas être remplacé par autre chose, car wsgin analyse cela fichier, reconnaissez uniquement l'application (lien de référence)
2. Le fichier principal de flask
from flask import Flask app = Flask(__name__) @app.route('/hello') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
À ce stade, la configuration de notre projet est pratiquement terminée. Ce qui nécessite une attention particulière ici, c'est le fichier wsgi. Présentation du projet.
3. Démarrez ou installez ApacheDémarrez cmd en mode administrateur et entrez le chemin du fichier bin d'Apache24 :
Installez Apache pour servir le système. :
httpd -k install
Démarrez Apache :
httpd -k start
J'ai découvert que certains ordinateurs peuvent l'exécuter directement en ouvrant httpd.exe sans installer httpd dans le service système.
Autres commandes Apache pouvant être utilisées :
Arrêtez le service Apache :
httpd -k stop
Redémarrez le service Apache :
httpd -k restart
À ce stade, notre flacon le projet passe wsgi Le module est construit après la construction du service Apache. Ouvrez localhost:8080/hello et voyez si helloworld apparaît. Si vous constatez que le projet n'est toujours pas configuré correctement, veuillez prêter attention au journal de sortie d'erreur d'Apache. Le journal de sortie des erreurs se trouve dans
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!