Python : Créer un petit serveur web à la volée

Introduction



Il peut être utile de vouloir créer un petit serveur web à la volée sur un serveur.
Pour récupérer un fichier via son navigateur ou autre...

Il est possible de le faire avec python :-)


Créer un serveur web avec python



Pour utiliser le répertoire courant comme racine du serveur web :

Code PYTHON :
python -m http.server


Des informations sur les accès s'affichent dans la console :
Code :
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...


Un accès à l'adresse IP du PC et du port 8000 (par défaut) affiche le contenu du dossier en cours :

Code :
127.0.0.1 - - [10/May/2021 21:45:21] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/May/2021 21:45:23] "GET /.adrien/ HTTP/1.1" 200 -


Si vous avez un pare-feu (par exemple firewalld), il faut évidemment ouvrir le port concerné !

Si vous voulez personnaliser le port exemple ici avec 8080 :

Code BASH :
python -m http.server 8080


Code :
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...


Si vous voulez écouter sur une adresse précise de la machine, on pourra spécifier avec l'option --bind :

Code BASH :
python -m http.server 8080 --bind 192.168.21.200


Et pour afficher un dossier spécifique (pas le dossier dans lequel on est), on spécifiera l'option --directory :

Code BASH :
python -m http.server 8080 --bind 192.168.21.200 --directory /var/www/pub