Frage Wie starte ich einen Webserver in einem beliebigen Ordner?


Ich suche nach einem relativ schmerzlosen Weg, um einen Web-Server mit Dokumentenstamm in jedem von mir angegebenen Ordner (oder besser, wo ich starte) zu starten.

Ich probiere oft neue Dinge wie JS-Frameworks oder so in einem neuen Ordner irgendwo hier aus:

/home/alexander/code/angularjs/

Es wäre dann praktisch, einfach in dieses Verzeichnis zu gehen und etwas einzugeben wie:

start-webserver-here 

damit ein Web-Server auf Port 80 hört und dieses Verzeichnis bedient, und ich kann ausprobieren, woran ich gerade arbeite.

Ich habe XAMPP installiert, aber es scheint, dass es einfacher Apache mit einem Dokumentenstamm ist, den ich ändern müsste, mit root-Rechten sogar, zusammen mit dem Erteilen von Berechtigungen für jeden Ordner usw.

Gibt es einen leichteren Weg?


106
2017-11-15 10:42


Ursprung


Jemand hat eine große Liste von Linern zusammengestellt, um dies zu erreichen: gist.github.com/willurd/5720255 - Abhinav Bhatia


Antworten:


Benutzen

python2 -m SimpleHTTPServer 80

oder

python3 -m http.server 80

um einen einfachen HTTP-Server zu starten.

Ersetzen 80 mit einer anderen Nummer, wenn Sie möchten, dass es an einem anderen Port hört. Für Ports <1024 muss es mit Root-Rechten ausgeführt werden.


160
2017-11-15 10:57



Genau das habe ich gesucht! Danke! - Alexander Rechsteiner
Kannst du das parallel zu Apache ausführen? Natürlich an einem anderen Port (obwohl ich Sie gerne begrüßen würde, indem Sie mir sagen, dass sie dieselben Ports benutzen können). - dibs
@dibs Ja, sie können beide parallel laufen. Aber nein, nicht am selben Port. - Dan
Das Python 3.x entspricht dem python3 -m http.server - Stefano Palazzo♦
das ist, warum ich stackoverflow so viel liebe. Came, der hier nach dem genauen Problem sucht, das ich eine sealtion für ... finden wollte, laufen angularjs von einem Webserver. Vielen Dank Florian Deisch - SK176H


Ich benutze auch gerne PHP für diesen Zweck, da es mir ermöglicht, Dinge wie WordPress on the fly auszuführen und Themen einfacher zu entwickeln (Sie benötigen jedoch immer noch MySQL):

php -S 0.0.0.0:8000

In dem das gleiche Skript damit beginne ich auch bewachen, die den Browser bei Dateiänderungen automatisch aktualisiert.


21
2017-11-19 10:32



Beachten Sie, dass die integrierte Serverfunktion war hinzugefügt in 5.4.0 - sierrasdetandil
Ja, Sie benötigen eine der neueren Version. Die Version in den 13.10 Repos, wenn Sie dies tun sudo apt-get install php5 ist 5.5.3, also sollten Sie in Ordnung sein. - metakermit
Perfekt ! Genau wonach ich gesucht habe! - Prakash Raman


Wenn Sie mehr Rubin interessiert sind, die Dienen Juwel ist großartig

serve

oder für einen anderen Port:

serve 9000

installieren mit gem install serve


17
2017-11-15 14:16



Dies funktioniert gut, aber es erfordert Ruby> = 1.9.3 - Valerio Schiavoni
Ja, aber auch 1.9.3 ist eol. Sicherheitspatches werden nicht mehr zurückportiert. Ich würde es empfehlen rvm zum Verwalten von Legacy-Rubinen. Sie sollten nicht die Standardeinstellung Ihres Systems sein - will-ob


Dies ist auch in Ruby möglich, ohne einen Edelstein zu installieren.

ruby -run -e httpd . -p5000


11
2017-11-20 23:22



Hat nicht für mich gearbeitet. Welche Version von Ruby hast du probiert? - Valerio Schiavoni
Funktioniert wie mit Ruby 2.5.1 beworben. - Raphael


Da im Namen Ihres Ordners angularjs angezeigt wird, scheint es sich um eine eckige js-App zu handeln. Überprüfen Sie in einem solchen Fall Yeoman aus.

Um es zu zitieren ist die Seite

Yeoman 1.0 ist mehr als nur ein Werkzeug. Es ist ein Workflow; eine Sammlung von Tools und Best Practices, die harmonisch zusammenarbeiten, um die Entwicklung für das Web noch besser zu machen.

Eines von vielen anderen Dingen ist das gebündelte grunt Server.


3
2017-11-19 10:37





Benutz einfach http-serverEs handelt sich um einen Befehlszeilenserver mit Nullkonfiguration.

Der einfachste Weg, es zu installieren, ist durch npm:

sudo npm install http-server -g

Verwendung:

http-server [path] [options]

[path] standardmäßig auf ./public Wenn der Ordner existiert und ./ Andernfalls.

Um Ihren Server in Aktion zu sehen, besuchen Sie http: // localhost: 8080. Benutzen -p Option, um einen anderen Port zu setzen.

Für weitere Optionen besuchen Sie: https://www.npmjs.com/package/http-server.


2
2017-07-04 22:43