Installer un serveur Python3
Installer apache
Apache est un puissant serveur HTTP, populaire et libre de droits.
- Mettre à jour le gestionnaire de paquets :
1 2 |
sudo apt-get update sudo apt-get upgrade |
- Installer Apache :
1 |
sudo apt-get install apache2 |
Servir une application Web Python Flask via Apache
Supposons que l’application s’appelle machin.py et soit placée dans le dossier /home/machin
1 2 3 4 5 6 7 8 9 10 |
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "L'informatique, c'est fantastique !" if __name__ == "__main__": app.run(debug=True) |
Installer wsgi
WSGI est une interface entre des serveurs et des applications web pour le langage Python.
1 |
sudo apt-get install libapache2-mod-wsgi-py3 |
Créer un fichier machin.wsgi dans le dossier /home/machin , et contenant le code suivant :
1 2 3 |
import sys sys.path.insert(0, '/home/machin') from machin import app as application |
C’est du python, même si l’extension ne le dit pas.
Configurer apache
Créer un nouveau fichier de configuration apache :
1 |
sudo nano /etc/apache2/sites-available/machin.conf |
avec le contenu :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerName machin WSGIDaemonProcess machin user=pi group=www-data threads=5 WSGIScriptAlias / /home/machin/machin.wsgi <Directory /home/machin> WSGIProcessGroup machin WSGIScriptReloading On WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> ErrorLog /home/machin/logs/error.log </VirtualHost> |
Ce fichier renseigne le serveur apache sur :
- le port du site (ici 80)
- le chemin du fichier de configuration wsgi (ici /home/machin/machin.wsgi )
- l’adresse à utiliser pour atteindre le site ( ici / , ce qui signifie que l’URL sera simplement l’adresse IP du Rasberry)
- le dossier où se situe le site (ici /home/machin )
- le chemin du fichier log (ici /home/machin/logs/error.log )
Ce fichier est très important : il permettra d’enregistrer tous les messages d’erreur et ainsi débugger le programme.
Il faut aussi penser à créer le sous-dossier logs .
- …
Donner les droits à l’utilisateur pi
1 |
sudo usermod –a -G "www-data" pi |
Activer la configuration wsgi
1 |
sudo /usr/sbin/a2ensite machin.conf |
Désactiver la configuration par défaut
1 |
sudo a2dissite 000-default |
Redémarrer Apache
1 |
sudo service apache2 reload |
Faire un reverse proxy
Pour rediriger une URL locale (par exemple un flux vidéo d’URL <adresse IP locale>:8080 ), il faut réaliser un reverse proxy :
Activer les fonctions de proxy
1 |
sudo a2enmod proxy proxy_http |
Modifier le fichier de configuration apache
1 |
sudo nano /etc/apache2/sites-available/machin.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
VirtualHost *:80> ServerName machin ProxyPass /cam/ http://<adresse IP locale>:8080/ ProxyPassReverse /cam/ http://<adresse IP locale>:8080/ ProxyRequests Off WSGIDaemonProcess machin user=pi group=www-data threads=5 WSGIScriptAlias / /home/machin/machin.wsgi <Directory /home/machin> WSGIProcessGroup machin WSGIScriptReloading On WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> ErrorLog /home/machin/logs/error.log </VirtualHost> |
Redémarrer Apache
1 |
sudo service apache2 reload |
Réinitialisation complète
En cas de fausse manœuvre, s’il devient nécessaire de recommencer à zéro, voici comment proprement réinstaller apache :
1 2 |
sudo apt-get remove --purge apache2 apache2-utils sudo apt-get install apache2 |
source : http://raspbian-france.fr/installer-serveur-web-raspberry/