Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 23/05/2009, à 15:59

freaxmind

Mettre en place un serveur HTTP en une ligne de commande

Voici une petite astuce que j'ai trouvé, peut être déjà connu, permettant de lancer un petit serveur http une ligne de commande. Bien pratique pour échanger des fichiers avec des amis sans se prendre la tête avec un partage !

python -m SimpleHTTPServer

Point intéressant, le répertoire où sera lancer cette commande sera automatiquement chrooté !

Python n'en finira jamais de me surprendre smile

Hors ligne

#2 Le 24/05/2009, à 09:44

omnimax

Re : Mettre en place un serveur HTTP en une ligne de commande

sorry pour mon ignorance, mais il ne faut rien de plus pour lancer un serveur? Je veux dire par là, est ce qu'on peut tous créer un serveur avec cette commande? Si oui quelle est l'adresse pour y accéder? Merci pour ta réponse.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#3 Le 24/05/2009, à 09:54

freaxmind

Re : Mettre en place un serveur HTTP en une ligne de commande

Si tu as python installé sur ta machine ( ce qui est le cas sur la majorité des systèmes linux ), alors tu peux lancer un serveur avec simplement cette commande ! Il n'en faut pas plus smile.

Moi aussi cela m'a surpris, mais en faite c'est assez bien fichu.
L'option -m de la commande python permet de lancer un module, ici la classe SimpleHttpServer qui dispose de tout le nécessaire pour monter un petit serveur http.

Pour y accéder, le port est livré dans le terminal ou tu execute la commande. Généralement, il s'agit du port 8000
Le dossier ou la commande sera executé sera vu comme la racine des répertoires de ton serveur, et selon les droits des répertoires tu pourras enregistrer et naviguer à travers eux.

C'est très puissant ! Ce qui est pratique c'est pour mettre a disposition rapidement des documents sous forme html ou pour faire un partage en http.

Hors ligne

#4 Le 24/05/2009, à 09:59

Qid

Re : Mettre en place un serveur HTTP en une ligne de commande

heu ...
ça me semble totalement iréel que ça puisse marcher ...
surtout si on a un vrais serveur web en paralelle en fait ...


"GNU/Linux c'est que du bon mais M$ Windows c'est pas si mal"
1 Portable Gigabyte P35G avec un multiboot de 9 os : pour moi : W$ & UBUNTU
et pour le GUL dont je suis le dépanneur de référence : en LTS : Ubuntu-gnome & KLXUbuntu + mint mate & cinnamon
1 Tablettes ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

En ligne

#5 Le 24/05/2009, à 10:32

freaxmind

Re : Mettre en place un serveur HTTP en une ligne de commande

Essaye, c'est juste une commande à mettre dans le terminal !

Le serveur sera sur le port 8000, utilisé principalement pour le développement ( j'en utilise pour quelques framework ). Mais cela ne pose pas de problème

Hors ligne

#6 Le 24/05/2009, à 10:45

Qid

Re : Mettre en place un serveur HTTP en une ligne de commande

hum ... wai j'ai alluciné entre le 80 et le 8000

Edit : wai d'accord ça marche ... c'est assez allucinant comme truc ... je me le garde sous le coude c'est sur que ça peu servir ... mais c'est vraisment accessible de l'exterieur si le port de la box est ouvert ? ducoups ça en devien limite comme serveur non ? c'est pas un peu nonsécurisé ?

Dernière modification par Qid (Le 24/05/2009, à 10:49)


"GNU/Linux c'est que du bon mais M$ Windows c'est pas si mal"
1 Portable Gigabyte P35G avec un multiboot de 9 os : pour moi : W$ & UBUNTU
et pour le GUL dont je suis le dépanneur de référence : en LTS : Ubuntu-gnome & KLXUbuntu + mint mate & cinnamon
1 Tablettes ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

En ligne

#7 Le 24/05/2009, à 11:18

freaxmind

Re : Mettre en place un serveur HTTP en une ligne de commande

Ce n'est accessible depuis ta box QUE si tu rediriges un port de ta box vers le port de ton pc. Il est également possible de faire une règle sous ton firewall pour filtrer uniquement les adresses de ton réseau local. Dans tous les cas, et pour un usage occasionnel, je pense que cela ne pose pas de problème.

Et puis le gros avantage de se serveur, c'est qu'il te chroot directement ton arborescence au niveau du répertoire ou tu lances ta commandes. Si par exemple tu as un dossier 'share' dans ton home, les gens qui utilisent se serveur ne pourront pas remonter au dessus dans l'arborescence.

Une bonne chose à garder sous le coude en effet ! Je pense que dès que j'ai le temps je m'amuserais un peu en sous classant se module ;p

J'obtiens ça, je suppose que c'est pas normal ?

C'est parfaitement normal, cela veut dire que ton serveur c'est lancé en local sur le port 8000. Tu peux taper dans l'url :
localhost:8000 pour t'en rendre compte

Pour le stoper, tu tapes ctrl+c dans le terminal

Dernière modification par freaxmind (Le 24/05/2009, à 11:19)

Hors ligne

#8 Le 24/05/2009, à 18:43

ppmt

Re : Mettre en place un serveur HTTP en une ligne de commande

Vraiment tres cool....hop dans ma boite a outil smile

Merci


le dock dont vous avez toujours rêvé  Cairo-Dock
irc://irc.freenode.net/#Cairo-Dock-fr

Hors ligne

#9 Le 25/05/2009, à 07:47

Qid

Re : Mettre en place un serveur HTTP en une ligne de commande

et si tu monte comme ça 2 répertoires il se passe quoi ?


"GNU/Linux c'est que du bon mais M$ Windows c'est pas si mal"
1 Portable Gigabyte P35G avec un multiboot de 9 os : pour moi : W$ & UBUNTU
et pour le GUL dont je suis le dépanneur de référence : en LTS : Ubuntu-gnome & KLXUbuntu + mint mate & cinnamon
1 Tablettes ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

En ligne

#10 Le 25/05/2009, à 16:27

nisnis

Re : Mettre en place un serveur HTTP en une ligne de commande

Excellente cette commande tongue
mais d'un autre PC je n'arrive pas a accéder au répertoire.

Sur ma box  j'ai trois PC avec des ip fixes:

192.168.0.10
192.168.0.11
192.168.0.12

Je lance la commande sur le pc 0.10.
Je fait comment pour configurer ma box, au niveau des ports et des redirections ?


"Un Windows meurt...Des Linux apparaissent !.."

Hors ligne

#11 Le 25/05/2009, à 16:33

Tomzz

Re : Mettre en place un serveur HTTP en une ligne de commande

Merci,
Je viens de tester, je suis bluffé

Hors ligne

#12 Le 25/05/2009, à 16:43

anonym_user

Re : Mettre en place un serveur HTTP en une ligne de commande

Et si tu veux arrêter le serveur tu fais quoi ?

#13 Le 25/05/2009, à 16:51

omnimax

Re : Mettre en place un serveur HTTP en une ligne de commande

même question + je pourrai avoir un exemple d 'adresse avec juste un dossier dedans pour voir à quoi le serveur ressemble? quitte à ce que tu le laisse uniquement pour aujourd'hui puis après tu le stoppes?

Dernière modification par greg2007 (Le 25/05/2009, à 16:53)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#14 Le 25/05/2009, à 17:18

Respawner

Re : Mettre en place un serveur HTTP en une ligne de commande

imhotep59 a écrit :

Et si tu veux arrêter le serveur tu fais quoi ?

CTRL + C

Hors ligne

#15 Le 25/05/2009, à 17:31

freaxmind

Re : Mettre en place un serveur HTTP en une ligne de commande

et si tu monte comme ça 2 répertoires il se passe quoi ?

Pas essayer, il devrait te sortir une erreur car le port est déjà binder.

Je fait comment pour configurer ma box, au niveau des ports et des redirections ?

Si tu es en local, tu devrais voir les PC mais il faut que ton navigateur et ton firewall soit configuré pour accéder au port 8000. Tu peux voir du coté des docs pour cela !

Hors ligne

#16 Le 25/05/2009, à 17:37

omnimax

Re : Mettre en place un serveur HTTP en une ligne de commande

oups ça va je me rends compte de ma bêtise tongue mettre en place un serveur pour pc fixe

et non pas un serveur qui génère une page web .... sorry lol:lol::lol::lol::lol::lol::lol:


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#17 Le 25/05/2009, à 18:46

anonym_user

Re : Mettre en place un serveur HTTP en une ligne de commande

Respawner a écrit :
imhotep59 a écrit :

Et si tu veux arrêter le serveur tu fais quoi ?

CTRL + C

Merci big_smile

#18 Le 26/05/2009, à 10:06

mhhh

Re : Mettre en place un serveur HTTP en une ligne de commande

http://www.system-linux.eu/index.php?post/2009/04/30/Un-serveur-web-en-une-seule-commande-Python

#19 Le 27/05/2009, à 11:16

lowje

Re : Mettre en place un serveur HTTP en une ligne de commande

En effet, c'est assez magique comme commande oO

Sincèrement merci !

Hors ligne

#20 Le 27/05/2009, à 12:07

lowje

Re : Mettre en place un serveur HTTP en une ligne de commande

nisnis a écrit :

192.168.0.10
192.168.0.11
192.168.0.12

Je lance la commande sur le pc 0.10.
Je fait comment pour configurer ma box, au niveau des ports et des redirections ?

===> Essaie "http://192.168.0.10:8000" sur n'importe lequel de tes pc (sur le pc 0.10 ça doit marcher dans tout les cas je pense).


Chez moi ça fonctionne nickel mais j'ai un switch sur la box et plusieurs pc sur le switch. Je ne suis pas expert en réseau mais je crois que ta box ne gère pas la redirections des ports pour les communications locale et donc ça devrait fonctionner.

Maintenant, si je me trompe ie la box gère la redirection des ports des communications locales, il faut dire à la box de balancer tout ce qui est "8000" (tcp ou udp, j'en sais rien ^^) vers 192.168.0.10

Hors ligne

#21 Le 27/05/2009, à 19:28

nisnis

Re : Mettre en place un serveur HTTP en une ligne de commande

Merci ça marche en local sur les trois ordis \o/ .

Je mettais planté d'IP (boulet inside)

Dernière modification par nisnis (Le 27/05/2009, à 19:29)


"Un Windows meurt...Des Linux apparaissent !.."

Hors ligne

#22 Le 27/05/2009, à 20:02

nisnis

Re : Mettre en place un serveur HTTP en une ligne de commande

Et pour y avoir accés hors du reseau local il faut faire quoi ? mettre l'ip de la box ?


"Un Windows meurt...Des Linux apparaissent !.."

Hors ligne

#23 Le 27/05/2009, à 22:53

freaxmind

Re : Mettre en place un serveur HTTP en une ligne de commande

Pour y accéder depuis l'extérieur, c'est comme n'importe quel autre service ( web, smtp ... ).

1 : Il faut que tu connaisses l'adresse de ta box, cela peut être un nom de domaine ou une ip fixe. Sinon, tu dois transmettre à tes contacts ton ip dynamique actuel ( ce qui se fait facilement )

2 : que ta box redirige ce qui arrive sur le port X de ta box vers le port 8000 de ton pc.

3 : configurer le firewall de ton pc et de ta box.

Si tu veux une solution définitive, je te conseille de mettre en place un vrai serveur de distribution de fichier, genre ftp.

L'avantage de cette ligne est multiple, un cas concret :
Vous intervenez devant des étudiants et voulez mettre à dispo un cours. Il vous suffit de mettre en place la ligne et ils peuvent se servir !
Idem en entreprise

Hors ligne

#24 Le 28/05/2009, à 14:32

nisnis

Re : Mettre en place un serveur HTTP en une ligne de commande

C'est le 2 ou je comprend pas bien tongue

Si tu pouvais m'expliquer ça comme si j'avais dix ans lol


"Un Windows meurt...Des Linux apparaissent !.."

Hors ligne

#25 Le 28/05/2009, à 16:38

carpediem

Re : Mettre en place un serveur HTTP en une ligne de commande

salut freaxmind, je viens de tester ton astuce en réseau local et en extérieur et ça marche super bien, juste une petite chose qui me turlupine, pour l'accès hors réseau local j'ai mis mon IP fixe. Y a t'il un risque de donner son IP fixe ou y a t'il un moyen plus sécurisé.
Cordialement Carpediem

Dernière modification par carpediem (Le 28/05/2009, à 16:39)


"Carpe diem quam minimum credula postero"
(Cueille le jour présent, en te fiant le moins possible au lendemain.)
HORACE

Hors ligne

Haut de page ↑