Créer un serveur Web instantané via la ligne de commande Terminal et Python

Vous voulez partager rapidement un fichier, tester du code ou diffuser quelque chose? Vous pouvez créer instantanément un serveur web à partir du répertoire courant en utilisant rien d'autre que python, yup, pas d'apache, pas de nginx, pas de litespeed, tout python, qui est livré avec à peu près toutes les variations unix de nos jours. La commande est remarquablement simple vu son utilité, et testez-la vous-même pour ouvrir une fenêtre Terminal et n'importe quel navigateur Web.

Cette astuce démarre instantanément un simple serveur web avec rien d'autre que python, cela fonctionne sous Mac OS X, Linux, FreeBSD et toute autre plate-forme Unix qui a python.

Comment démarrer un serveur Web instantané avec Python

Pour créer le serveur Web instantané à partir de la ligne de commande, tapez ce qui suit dans le répertoire que vous souhaitez avoir accessible via les navigateurs et HTTP:

Démarrer un serveur Web simple en Python 2

python -m SimpleHTTPServer

Démarrez Simple Web Server en Python 3

python -m http.server

Cela publiera le répertoire courant en tant que serveur Web immédiatement, donc si vous avez un fichier index.html qui sera immédiatement affiché, sinon il ne fera que lister le contenu du répertoire à votre adresse IP locale ou "0.0.0.0". Notez que le port 8000 est le paramètre de port par défaut pour cette fonctionnalité, ce qui signifie que pour accéder au serveur Web à partir d'un navigateur, vous devez entrer l'adresse suivante: http://0.0.0.0:8000

Rappelez-vous, sans un fichier index.htm ou index.html dans le répertoire, une simple liste de répertoires du CWD / PWD apparaîtrait au navigateur à la place.

Une fois exécuté, le terminal se mettra à jour au fur et à mesure que les pages et les données seront chargées sur le serveur web python, affichant les informations de journalisation HTTP standard, telles que les requêtes GET et PUSH, les fichiers accédés et par qui, 404 erreurs, adresses IP, dates, tout ce que vous attendez d'un journal http standard comme si vous étiez en train de gérer un fichier journal d'accès apache.

Vous pouvez obtenir un amateur si vous le souhaitez et spécifier un port, en donnant un certain niveau d'obscurité au serveur web si vous espérez ne diffuser que quelque chose à une personne en particulier, ou si vous ne voulez pas qu'il apparaisse sur un standard 8000 portscan. Tout ce que vous devez faire est de spécifier un numéro de port à la fin de la commande ci-dessus, comme ceci:

python -m SimpleHTTPServer 4104

Cela ferait que le serveur web se lancerait dans le répertoire courant sur l'IP avec le port 4104, par exemple supposons l'IP localhost: http://127.0.0.1:4104, ou http://0.0.0:4104 selon votre paramètres.

C'est un conseil très pratique si vous faites du développement web rapide et que vous voulez le vérifier immédiatement dans un navigateur ou le montrer à quelqu'un d'autre, et vous ne voulez pas prendre le temps de le sftp ou le commettre dans un dépôt. Cela devrait fonctionner sur n'importe quel OS variant d'unix, y compris FreeBSD, Linux, Ubuntu, Redhat, et bien sûr Mac OS X est également inclus.

La vidéo ci-dessous montre un serveur python lancé dans un répertoire avec un fichier index.html simple, il montre également comment la commande python en cours d'exécution reflète ce qui se passe avec la connexion http comme un journal de serveur http normal:

Faites-nous savoir si vous trouvez des utilisations particulièrement utiles ou des secrets supplémentaires pour cette grande petite astuce.