Conditions préalables
- Un serveur Vultr fonctionnant sous Arch Linux à jour (voir cet article .)
- Un serveur Web en cours d'exécution, Apache ou Nginx
- Accès Sudo:
- Les commandes devant être exécutées en tant que root sont préfixées par
#. La façon recommandée d'exécuter des commandes en tant que root est, en tant qu'utilisateur normal, de préfixer chacunesudo
- Faites installer un éditeur de texte et familiarisez-vous avec lui, comme vi, vim, nano, emacs ou un éditeur similaire
Installez Python 3.7 sur votre serveur Web
Sur Apache
Malheureusement, il n'est pas pris en charge pour exécuter les deux versions des modules Apache (pour Python 2.x et 3.x) en même temps sur le même système Arch, mais c'est rarement un problème.
Pour utiliser Python 3.x:
# pacman -S mod_wsgi
Activez le mod_wsgimodule Apache en modifiant /etc/httpd/conf/httpd.confet à la fin de la liste des LoadModulecommandes, ajoutez ce qui suit:
LoadModule wsgi_module modules/mod_wsgi.so
Sur Nginx
Pour utiliser Python 3.x:
# pacman -S uwsgi-plugin-python
Tester Python
Dans le répertoire approprié, créez test.pyavec le contenu suivant:
#-*- coding: utf-8 -*-
def wsgi_app(environment, start_response):
import sys
output = sys.version.encode('utf8')
status = '200 OK'
headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, headers)
yield output
application = wsgi_app
Sur Apache
Ajoutez à la fin de /etc/httpd/conf/httpd.conf, ou si vous exécutez plusieurs hôtes, modifiez le fichier de configuration approprié et ajoutez le <VirtualHost>bloc approprié :
WSGIScriptAlias /wsgi_app /srv/http/test.py
Redémarrez Apache:
# systemctl restart httpd
Dans un navigateur Web, visitez http://YOUR-SERVER-WEB-ADDRESS-OR-IP/wsgi_app, et vous verrez une page de test avec les versions python et GCC.
Supprimez le test.pyfichier de test que vous venez de créer et le WSGIScriptAliasdans votre configuration Apache.
Redémarrez Apache:
# systemctl restart httpd
Sur Nginx
Créez le fichier /etc/uwsgi/wsgi_app.iniavec le contenu suivant:
[uwsgi]
socket = /run/uwsgi/wsgi_app.sock
uid = http
gid = http
plugins = python
chdir = /usr/share/nginx/html/
wsgi-file=test.py
callable = application
Démarrer uWSGI servant wsqi_app:
# systemctl start uwsgi@wsgi_app
Autorisez Nginx à utiliser uWSGI en modifiant /etc/nginx/nginx.conf, et pour chaque bloc serveur que vous souhaitez tester, ajoutez ce qui suit. Sinon, si vous utilisez des hôtes virtuels, modifiez le fichier de configuration de chaque hôte:
location ~ \wsgi_app {
root /usr/share/nginx/html/;
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/wsgi_app.sock;
}
Redémarrez Nginx:
# systemctl restart nginx
Dans un navigateur Web, visitez http://YOUR-SERVER-WEB-ADDRESS-OR-IP/wsgi_app, et vous verrez une page de test avec les versions python et GCC.
Supprimez le test.pyfichier que vous venez de créer, et le bloc de l' emplacement que vous venez d' ajouter à /etc/nginx/nginx.confpour wsgi_app.
Redémarrez Nginx:
# systemctl restart nginx
Arrêtez le service uWSGI wsgi_app:
# systemctl stop uwsgi@wsgi_app
Supprimer les /etc/uwsgi/wsgi_app.iniet test.pyfichiers de test que vous venez de créer.