[PYTHON] Dessinez bonjour le monde avec mod_wsgi

introduction

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

installer apache2

Installez apache2

sudo apt install -y apache2 apache2-dev

installation de mod-wsgi

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.

paramètres apache2

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

Paramètres Apache2

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éer 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émarrer apache2

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

Dessinez bonjour le monde avec mod_wsgi
bonjour le monde avec ctypes
Bonjour le monde avec Docker
Bonjour le monde sur flacon
Bonjour le monde avec Flask + Hamlish
Jusqu'à bonjour le monde avec zappa
Python commençant par Hello world!
Bonjour le monde
Bonjour tout le monde! Avec la communication CAN virtuelle
[Note] Sortie Hello world avec python
Hello World! Par QPython avec Braincrash
Bonjour le monde avec Raspberry Pi + Minecraft Pi Edition
Pymacs helloworld
cython helloworld
Hello World! Par QPython avec Brainfu * k
Hello World et détection de visage avec OpenCV 4.3 + Python
Hello World avec gRPC / go dans l'environnement Docker
Bonjour tout le monde avec toutes les fonctionnalités du langage Go
Dites bonjour au monde avec Python avec IntelliJ
Hello World avec nginx + uwsgi + python sur EC2
Créez une application Hello World avec un seul fichier avec django
Premier python ① Construction de l'environnement avec pythonbrew & Hello World !!
Créer un serveur "Hello World" (HTTP) dans Tornado
web2py Remarque: Bonjour le monde
Tutoriel RabbitMQ 1 ("Hello World!")
Hello World avec Django
Le premier Hello World de Django
Prédisons les survivants du Hello World de Kaggle, Titanic par régression logistique-Modélisation-
Hello World avec Google App Engine (Java 8) + Spring Boot + Gradle
Dessinez la courbe de Bézier avec Go
Hello World avec Google App Engine (Java 8) + API Servlet 3.1 + Gradle
Dessinez un graphique avec NetworkX
Dessiner un fichier netCDF avec python
Hello World en langue GO
Prédisons les survivants de Hello World, Titanic de Kaggle par régression logistique-Prédiction / Évaluation-
Hello World (débutant) avec Django
Dessinez un graphique avec networkx
Hello World avec Google App Engine (Java 11) + Spring Boot + Gradle
Jusqu'à Hello World avec Flask + uWSGI + Nginx @ Sakura's VPS (CentOS 6.6)
Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
Commencez avec Windows, pas si effrayant Nim ① C'est comme bonjour le monde.
Dessinez des sprites non flous avec cocos2d / pyglet
Tracez un graphe avec Julia + PyQtGraph (2)
Introduction à TensorFlow - Hello World Edition
Bonjour tout le monde! (Chaîne de blocs viables minimum)
Dessinez le japonais avec matplotlib sur Ubuntu
Dessinez un graphique lâche avec matplotlib
Dessinez un beau cercle avec numpy
Tracez un graphique avec Julia + PyQtGraph (1)
Définir plusieurs WSGIPythonPath avec Apache + mod_wsgi
Dessinez un graphique avec Julia + PyQtGraph (3)
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Dessinez une courbe Koch avec Python Turtle
cout << "Hello, World! \ N" en python
Hello World avec Flask [Mémo approprié]
Code: 2 "Hello World" dans "Choregraphe-Python script"
Dessinez un graphique avec des pandas + XlsxWriter
Créez une API en utilisant hug avec mod_wsgi
Dessinez une illustration avec Python + OpenCV
Dessinez facilement des graphiques avec matplotlib