~rom1v/blog { un blog libre }

Créer un serveur HTTP en 10 secondes sur Ubuntu grâce à Python

Il suffit d’aller dans le répertoire à partager et d’exécuter :

$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Le répertoire sera chrooté et accessible sur http://localhost:8000.

Par défaut, le port 8000 est utilisé, mais on peut le changer :

$ python -m SimpleHTTPServer 1234
Serving HTTP on 0.0.0.0 port 1234 ...

Pour les ports inférieurs à 1024, il faut être root :

$ sudo python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...

Si le port correspondant est ouvert sur le routeur, il sera également accessible de l’extérieur. Pratique pour partager rapidement du contenu…

Commentaires

Févic

Impressionnant! Merci pour l’info!

Tout simplement énorme.Vraiment :))

Tournant depuis tres longtemps sous gnu/linux ubuntu, pour mes besoins perso ( test de templates html/css), je devais a chaque fois, monter apache2 etc… qui quand on est novice… et plus ou moins long a reussir a mettre en oeuvre.( voir docs diverses :))

La c’est tout simplement enorme :)) une ligne dans le terminal et Hop..c’est fait :))

La dessus un petit script qui vas bien pour Nautilus(click droit et c’est le bonheur :))

Plus serieusement ne connaissant absolument pas Python…

Peut t’il y avoir moyen de le faire tourner avec Php.

Voila :)

Merci et encore tres Bonne Continuation

Prend soin de toi

bye

Génial :) C’est normal que dans la liste des trucs, on:

  • ne voit pas tous les fichiers(typiquement je vois pas mes fichiers vidéos(.mov, .avi, .mp4)
  • ne voit pas les dossiers?
nico

Super!!!

ca me servira bien pour echanger des fichiers entre deux uc

Merci super infos

®om

@J4N

Génial :) C’est normal que dans la liste des trucs, on:

  • ne voit pas tous les fichiers(typiquement je vois pas mes fichiers vidéos(.mov, .avi, .mp4)
  • ne voit pas les dossiers?

Chez moi je vois tous les fichiers et les vidéos…

C’est marrant,j’ai lu un billet évoquant la même astuce dans mon agrégateur RSS (Tiny Tiny Rss) aujourd’hui. Par contre, il n’était pas aussi détaillé que le tien. Non, sérieusement c’est vraiment cool comme truc.

Je fais déjà du Python pour des scripts basiques, là ça me donne vraiment envie de faire du Python mon langage à la place de PHP pour les applications web !

Tu fais du Python ®om ?

citronbleu-v

C’est vrai que si en plus avec une simple option la commande pouvait faire tourner php (apache avec des options prédéfinies de base) ça serait magnifique.

Sabotage

@J4N

Génial :) C’est normal que dans la liste des trucs, on:

  • ne voit pas tous les fichiers(typiquement je vois pas mes fichiers vidéos(.mov, .avi, .mp4)
  • ne voit pas les dossiers?

ca partage ton repertoire courant, choisi ton rep avant et ensuite lance

python -m SimpleHTTPServer

Impressionant ! Mais après ? Là t’as juste un partage de fichiers… (si le port est ouvert), ce qui est faisable avec samba encore plus rapidement.

Tu pouvais écrire en titre “sur Gnu/Linux” :)

Ça fonctionne très bien sous Fedora.

Super cette simple astuce !

Thank’s for sharing :)

C’est un peu le même principe que Woof et Droopy petit serveur web en python pour partager du contenu, Droopy va meme plus loin il permet d’uploader des fichiers.

J’ai découvert cela sur le blog de Uggy

http://blog.uggy.org/post/2009/10/22/Droopy-Upload-simple-de-fichier-par-HTTP

GENIAAAALLLLLLLLL

pour ceux qui ont un doute (je sais pas si c’est utile de le dire ?) :

ça marche aussi sous mac snow leopard (avec le port python de macport)

Corbier

Normal python roxxx !!!!!!

cedric

ca marche en fait pour toutes les versions de python.

c’est une classe de base permettant de rajouter un serveur dans son application.

il y a même une application exemple pour de consulter la doc interne des modules

smecher

En trouvant ce petit truc sympa, j’ai cherché un peut plus sur le net…

et effectivement, les petits scripts d’Upload et les petits scripts pour visionner le contenu d’un dossier sont bien sympa…

ca serait bien de pouvoir faire un mix des 2 …( Amis Devs… ;) )

Plus serieusement…

si je post ici…

c’est pour rajouter une petite commande permettant ainsi d’avoir un rapport de log non plus dans la console mais sur un fichier texte.

nohup python -m SimpleHTTPServer

c’est en fait just un petit nohup a rajouter

voila..a plus et y’a vraiment des trucs a faire avec Python ;)

Bonjour,

J’ai trouvé votre tutoriel, simple et pratique. C’est pour cela que je me suis permis de le traduire dans ma langue maternelle (l’espagnol) et de le publier dans mon blog , en respectant bien entendu votre propriété intelectuelle.

Voici l’adresse :

http://www.gustavopimentel.com.ar/2009/12/crear-un-server-http-en-pythoncreer-un-serveur-http-avec-python/#more-633

Merci,

Gustavo Pimentel

Gillaume

Je n’en reviens pas de cette astuce.

C’est l’astuce de l’année pour moi.

Merci beaucoup.

Guillaume

smecher

c’est bon le script tout chaud tout beau est arrivé :D

c’est un script bash qui utilise aussi zenity.

(parfais sous gnome ;)

il est tres interesssant, puisqu’il permet de connaitre son adresse Ip externe + son Ip resau interne.

de plus , dans le systray, une icone apparait quand le serveur tourne.

plus de detail ici..pour questions et autres…

http://forum.ubuntu-fr.org/viewtopic.php?id=364489

ou sinon, le script est a telecharger sur le site de son auteur.

a savoir Sputnick.

http://www.sputnick-area.net/scripts/SimpleHTTPServerGui.bash

@+

Un serveur web en moins de dix secondes… grace à Python !… Cela fait bien longtemps que j’entends parler de Python comme langage de programmation : simple, facile d’apprentissage, etc… Et il y a peu, je tombe sur un post d’un blog qui explique comment, en une ligne de commande très courte, créer un…

[…] serveur HTTP en Python et en dix secondes : Julien revient sur un article du ®om’s blog qui nous apprend à créer un serveur web simple en une seule ligne de commande en Python. Simple […]

@Silvyn!

Tu pouvais écrire en titre “sur Gnu/Linux” :)

Ça fonctionne très bien sous Fedora.

Super cette simple astuce !

Thank’s for sharing :)

Ou alors “avec python”, ça marche partout ou python est installable (BSD, Solaris, MAC OS, Windows…)

C’est étrange, si je lance ce script, en allant sur http://localhost:1234 j’arrive sur mon site hébergé chez x10hosting :-S

[…] lourde apache ou nginx. Après diverses recherche sur mon ami, je suis tombé sur : créer un serveur http en 10 secondes […]

[…] Castellano | Article d’origine intitulé : “Créer un serveur HTTP en 10 secondes sur Ubuntu grâce à Python” […]

Jellyroll

L’astuce fonctionne avec Windows XP.

[…] Source : ®om’s Blog =) Catégories:Info, Mémo perso Mots-clefs :Python, rapide, serveur, Ubuntu, web Commentaires (0) Rétroliens (0) Laisser un commentaire Rétrolien […]

[…] serveur HTTP en Python et en dix secondes : Julien revient sur un article du ®om’s blog qui nous apprend à créer un serveur web simple en une seule ligne de commande en Python. Simple […]

jay

Question naïve:

Est-ce possible de lancer un serveur python qui peut-être visible depuis internet en le faisant pointer sur mon adresse IP ?

®om

@jay, il suffit de configurer ton routeur pour rediriger le port écouté vers ton PC où tu as lancé le serveur.

[…] article est une reprise d’autre autre blog. L’info est tellement pratique que je la reprends […]

Bonjour,

Je cherche a faire, en local, une petite application en Python d’interrogation d’une base SQLITE dont l’interface serait en HTML.

Créer de cette façon simple le serveur m’irait très bien.

En revanche, comment faire exécuter les scripts Python par le code HTML ?

raphael

@olivier

tu peux utiliser le module CGIHTTPServer qui hérite de SimpleHTTPServer et qui permet d’exécuter des scripts CGI présents par défaut dans le sous répertoire cgi-bin

Pour plus d’info: http://docs.python.org/library/cgihttpserver.html

Et ça marche pour lancer du php dedans (pour faire du coding web) ?

Marre de relancer apache en root à chaque fois !

®om

@22decembre Non, c’est très basique…

Les commentaires sont fermés.