Le but est de "dessiner" Hello World "en utilisant mod-wsgi". Qu'est-ce que mod-wsgi? Il est également utilisé pour utiliser le Python Web Framework Django.
À titre de prémisse, on suppose que ce qui suit est fait.
environnement OS: Debian 9.0 stretch Python: 3.6.3
Installez apache2
sudo apt install -y apache2 apache2-dev
Vous devez être un peu prudent. En effet, il existe deux façons de l'installer: apt-get et pip. Dans le cas d'apt-get, c'est libapache2-mod-wsgi d'apache2 qui est installé, mais cela crachera des avertissements en raison de la différence entre Python qui a été compilé plus tard et Python qui est en cours d'exécution. Par conséquent, nous vous recommandons d'utiliser pip pour l'installer.
Tout d'abord, assurez-vous d'avoir sélectionné la version de python que vous souhaitez utiliser
pyenv versions
Si vous pouvez confirmer, installez mod-wsgi
pip install mod-wsgi
Vérifiez juste au cas où
pip freeze | grep wsgi
mod-wsgi==4.6.5
C'est bon.
Contrairement au cas où libapache2-mod-wsgi est installé, un petit réglage est nécessaire. Les fichiers suivants sont créés lorsque mod-wsgi est installé avec pip.
/home/USERNAME/.pyenv/versions/3.6.3/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
Laissez apache2 reconnaître ce fichier.
sudo vim /etc/apache2/mods-available/wsgi.load
Écrivez la ligne suivante. N'oubliez pas de remplacer USERNAME.
LoadModule wsgi_module /home/USERNAME/.pyenv/versions/3.6.3/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
Puis activez wsgi.
sudo a2enmod wsgi
C'est OK si les commentaires suivants apparaissent.
Enabling module wsgi.
To activate the new configuration, you need to run:
systemctl restart apache2
Veuillez redémarrer apache2.
sudo service apache2 restart
Je vais jouer avec les fichiers de configuration Apache2 (/ etc / apache2 /), mais faire une sauvegarde au cas où.
cd /etc/apache2/sites-available
sudo cp 000-default.conf 000-default.conf.bk
sudo vim 000-default.conf
Ajoutez ce qui suit à la dernière ligne:
Au fait, dans vim, G (shift + g)
se déplace vers la dernière ligne.
WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py
Créez le fichier test_wsgi.py spécifié dans WSGIScriptAlias ci-dessus.
sudo vim /var/www/html/test_wsgi.py
Le contenu du fichier doit être le suivant.
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Redémarrez apache2 lorsque ce qui précède est terminé.
sudo service apache2 restart
Après cela, accédez au nom de domaine (ou IP) / test_wsgi (Http ← Attention) et vous devriez voir Hello World.
Recommended Posts