Comment démarrer facilement un serveur web dans n’importe quel dossier?

115

Je cherche un moyen relativement simple de lancer un serveur Web avec la racine du document dans le dossier que je spécifie (ou, mieux encore, le lieu de lancement).

J'essaie souvent de nouvelles choses comme les frameworks JS ou dans un nouveau dossier quelque part ici:

/home/alexander/code/angularjs/

Il serait alors pratique de simplement aller dans ce répertoire et de taper quelque chose comme:

start-webserver-here 

de sorte qu'un serveur Web commence à écouter sur le port 80 et à servir ce répertoire, et que je puisse essayer tout ce sur quoi je travaille.

J'ai installé XAMPP, mais il semble que ce soit un apache basique avec un root de document que je devrais changer, avec même les privilèges root, avec l'octroi d'autorisations pour chaque dossier, etc.

Y a-t-il un moyen plus facile?

Alexander Rechsteiner
la source
Quelqu'un a compilé une grande liste de doublures pour y parvenir: gist.github.com/willurd/5720255
Abhinav Bhatia

Réponses:

174

Utilisation

python2 -m SimpleHTTPServer 80

ou

python3 -m http.server 80

pour démarrer un serveur HTTP simple.

Remplacez-le 80par un autre numéro si vous souhaitez l'écouter sur un autre port. Pour les ports <1024, il doit être exécuté avec les privilèges root.

Florian Diesch
la source
1
C'est exactement ce que je cherchais! Danke!
Alexander Rechsteiner
1
Pouvez-vous l'exécuter parallèlement à Apache? Bien sûr, sur un port différent (je vous prierais toutefois de m'épouvanter en me disant qu'ils peuvent utiliser les mêmes ports).
Dibs
3
@dibs Oui, ils peuvent tous les deux fonctionner en parallèle. Mais non, pas sur le même port.
Dan
11
Son équivalent en python 3.x est:python3 -m http.server
Stefano Palazzo
1
C’est pourquoi j’aime tellement stackoverflow. Je suis venue ici pour trouver le problème exact pour lequel je voulais trouver une âme… lancer angularjs à partir d’un serveur Web. Merci beaucoup Florian Deisch
SK176H
24

J'aime aussi utiliser PHP à cette fin, car cela me permet d'exécuter des choses comme WordPress à la volée et de développer des thèmes plus facilement (vous avez toujours besoin de MySQL):

php -S 0.0.0.0:8000

Dans le même script qui démarre, je lance également Guard , qui actualise automatiquement le navigateur lors du changement de fichier.

métakermite
la source
2
Notez que la fonctionnalité de serveur intégrée a été ajoutée dans 5.4.0
sierrasdetandil
Oui, vous avez besoin de l’une des versions les plus récentes. La version dans le référentiel 13.10 si vous faites sudo apt-get install php5est 5.5.3, donc vous devriez être OK.
Métakermite,
Parfait! Exactement ce que je cherchais !
Prakash Raman
17

si vous êtes plus soucieux de rubis, le joyau de service est excellent

serve

ou pour un port différent:

serve 9000

installer avec gem install serve

will-ob
la source
Cela fonctionne bien, mais il faut ruby> = 1.9.3
Valerio Schiavoni
Oui, mais aussi 1.9.3 est eol . Les correctifs de sécurité ne sont plus rétroportés. Recommanderais RVM pour la gestion des rubis hérités. Ils ne doivent pas être ceux par défaut de votre système
will-ob
13

Ceci est également possible dans Ruby sans installer de gemme.

ruby -run -e httpd . -p5000

Steelsouls
la source
Ca n'a pas marché pour moi. Quelle version de rubis avez-vous essayé?
Valerio Schiavoni
Fonctionne comme indiqué avec Ruby 2.5.1.
Raphaël
6

Il suffit d'utiliser http-server, c'est un serveur de ligne de commande sans configuration.

Le moyen le plus simple de l'installer est d'utiliser npm:

sudo npm install http-server -g

Usage:

http-server [path] [options]

[path]La valeur par défaut est ./publicSi le dossier existe, et ./sinon.

Pour voir votre serveur en action, visitez http: // localhost: 8080 . Utilisez l' -poption pour définir un autre port.

Pour plus d'options, visitez: https://www.npmjs.com/package/http-server .

Luis Ma
la source
La seule raison de ne pas utiliser ceci est que cela nécessite des rpm qui ne sont pas installés nativement. Les autres solutions qui mentionnent ruby ​​et python sont préinstallées sur presque tous les systèmes d'exploitation. Il n'y a donc pas de pré-requis associé à l'installation de la commande pour exécuter le serveur.
jamescampbell
3

Comme il y a angularjs dans le nom de votre dossier, il semble que ce soit une application angulaire js. Dans un tel cas, assurez-vous de vérifier yeoman .

Pour citer son site

Yeoman 1.0 est plus qu'un outil. C'est un flux de travail. une collection d'outils et de bonnes pratiques travaillant en harmonie pour rendre le développement pour le Web encore meilleur.

Le gruntserveur fourni est l’une des nombreuses autres choses .

mreq
la source