Lors de la création et de la publication d'une application simple à l'aide de Python, le serveur Web est Apache et le cadre d'application Web est [flask](https: //flask.palletsprojects. Je pense que la combinaison de com / en / 1.1.x /) est courante. Et WSGI (Web Server Gateway Interface) qui connecte Apache et flask utilisera mod_wsgi.
Créez une instance EC2 sur AWS, installez Apache et exécutez l'application écrite en flask! J'ai également installé mod_wsgi, donc cela devrait fonctionner correctement! Je réfléchissais, mais parfois j'obtiens l'erreur suivante:
mod_wsgi (pid=8711): Target WSGI script '/var/www/xxx/xxx.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=8711): Exception occurred processing WSGI script '/var/www/xxx/xxx.wsgi'.
Pourquoi avez-vous installé mod_wsgi? Cependant, la conclusion est que mod_wsgi installé par yum install mod_wsgi
est ancien et uniquement compatible avec la série Python 2 (dans le cas du système d'exploitation de la série Cent OS).
Donc, si vous avez installé mod_wsgi avec yum install mod_wsgi
, vous devez le désinstaller avec yum remove mod_wsgi
. Après cela, si vous installez via pip comme pip install mod_wsgi
, vous pouvez installer mod_wsgi correspondant à la série Python3.
Par exemple, si vous créez un environnement virtuel Python 3.7 en utilisant venv
, vous pouvez exécuter la commande pip ci-dessus.
$VENVHOME/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so
Un fichier de bibliothèque partagée de mod_wsgi sera créé à l'emplacement. Ensuite, si vous écrivez ce qui suit dans le fichier de configuration Apache, mod_wsgi correspondant à Python3 sera exécuté.
LoadModule wsgi_module $VENVHOME/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so
Félicitations, félicitations. Malgré tout, il existe de nombreux pièges concernant la version Python ...
Recommended Posts