Ich habe ein Skript, das täglich einen Bericht erstellt, den ich der sogenannten allgemeinen Öffentlichkeit anbieten möchte. Das Problem ist, dass ich die Wartung eines HTTP-Servers (z. B. Apache) mit allen Konfigurationen und Sicherheitsaspekten nicht zu meinen Kopfschmerzen hinzufügen möchte.
Gibt es eine absolut einfache Lösung für die Bereitstellung einer kleinen HTML-Seite, ohne einen ausgewachsenen HTTP-Server konfigurieren zu müssen?
Antworten:
Ja, nweb
Kann hier gefunden werden: nweb.c
(vorher bei ibm.com )
So kompilieren Sie nweb.c:
quelle
Versuchen Sie SimpleHTTPServer :
Es sollte dienen, was auch immer in der CWD (z. B. index.html) unter http://0.0.0.0:8000 ist .
quelle
python3 -m http.server 1337
. Sie können nicht angeben, an welche IP gebunden werden soll, soweit ich das beurteilen kann. Hinweis: Um Port 80 abhören zu können, müssen Sie über Root-Rechte verfügen, z. B .:sudo python3 -m http.server 80
twistd -n web -p 8000 --path .
--bind <address>
wurde in Python 3.4 hinzugefügt .python -m SimpleHTTPServer 3000
Es gibt eine große Liste von Einzeilern für statische http-Server :
Zum Beispiel:
Verdreht (Python)
Erlang :
Plack (Perl)
webfs
Ruby 1.9.2+
quelle
Verwenden Sie
node.js
, schnell und leicht.Oder
Verwenden Sie einfach den
nc
Befehl netcat, um einen schnellen Webserver an einem Port zu starten und den Inhalt einer Datei einschließlich der Serverantwort-Header bereitzustellen.Referenz aus Wikipedia:
http://en.wikipedia.org/wiki/Netcat#Setting_up_a_one-shot_webserver_on_port_8080_to_present_the_content_of_a_file
quelle
nc
basierte Lösung :). Beachten Sie, dass die-ne
Flags fürecho
möglicherweise nicht portierbar sind. Die Verwendung desprintf
Befehls ist jedoch möglicherweise eine bessere Alternative.Seit Version 5.4.0 hat PHP auch einen eingebauten Webserver :
Sie können das Dokumentenverzeichnis des Webservers wie folgt angeben
-t
:Wenn Sie über das Netzwerk auf den Server zugreifen möchten, gehen Sie wie folgt vor:
quelle
Der Knoten verfügt über ein einfaches, schnelles und leichtes HTTP-Servermodul. Installieren:
(Vorausgesetzt, Sie haben
node
undnpm
bereits installiert.)So führen Sie es aus, indem Sie das aktuelle Verzeichnis als Website-Stammverzeichnis verwenden:
Dies erstellt einen Server auf
http://0.0.0.0:8080/
.quelle
npm install -D http-server
im Projektverzeichnis und füge dann die folgenden Zeilen zu meinerpackage.json
Datei hinzu:"scripts": { "build": "webpack && cd src/public && http-server" },
Jetzt muss ich nur nochnpm run build
im Projektverzeichnis laufen , um den HTTP-Server zu starten, und lausche standardmäßig auf Port 8080.python3 -m http.server
" versucht , aber es ist ein Singlethread und es kann immer nur 1 Client gleichzeitig heruntergeladen werden, die anderen müssen warten. Diese Lösung mit Node.js funktioniert aufgrund der asynchronen Natur von Node besser. Wenn Sie eine Datei für mehrere Personen freigeben möchten, verwenden Sie diese Option.Versuchen Sie es
SimpleHTTPServer
in Python.Die ersten beiden Zeilen sind für den Webserver eingerichtet. In der letzten Zeile wird ein einfacher Webserver erstellt, der auf Port 8080 geöffnet ist und nur Dateien von dient
~/public_html
. Wenn nur eine Datei in diesem Verzeichnis ist, dann nur , dass freigelegt:http://localhost:8080/output.txt
.quelle
.py
Datei ein, starte sie dann mitpython
(oder mache sie ausführbar). Denken Sie daran, dass Sie mit dem Python 2.x-Interpreter arbeiten müssen.Sie können auf Xinetd huckepack . Fügen Sie die folgende Konfigurationsdatei in /etc/xinetd.d/ ein und warten Sie das Neuladen von xinetd :
Funktioniert für meine Weiterleitungszwecke:
quelle
Oldschool Ruby WEBrick HTTP Server:
Stellen Sie sicher, dass Sie das
DocumentRoot
für Ihr Setup ändern . Siehe auch das .quelle
Eine andere Möglichkeit wäre, lighttpd zu installieren. Im Folgenden finden Sie Vorschläge zur Installation von lighttpd auf einem Unbuntu 12.04 LTS.
Hinweis: In Documentroot werden alle Dateien, auf die über das Internet zugegriffen werden kann, gespeichert. Der Speicherort ist / var / wwww
Mit dem obigen Schritt wird ein einfacher lighttpd-Webserver installiert. Weitere Informationen finden Sie in den folgenden Referenzen
Verweise:
quelle
Einfacher Ruby One Liner, um ein Verzeichnis zu bedienen:
quelle
./devd -o -a -P devd:devd .
https://github.com/cortesi/devd/releases
quelle
Möglicherweise funktioniert auch eine einfache Korrektur / Verbesserung einer etwas unfairen (imho) abgelehnten Antwort. Lassen Sie uns zuerst die HTML-Datei einrichten ...
Jetzt können Sie es mit diesem Einzeiler servieren:
Diese Grundidee
cat
bietet sich für andere Tricks an, die für Sie möglicherweise über andere oder untergeordnete Ideen funktionieren, z.quelle
Caddy versuchen
curl https://getcaddy.com | bash
Inhalte aus / var / www bereitstellen
caddy -root /var/www "browse"
Jetzt finden Sie den Server unter http: // localhost: 2015
quelle
caddy
aus einem lokalen Verzeichnis zu kommen und genieße es, einen modernen und sicheren Webserver zu haben.Einfaches Netcat-Beispiel zum Einfügen eines Bash-Skripts:
quelle
while [ 1=1 ] ; do echo "TEST" | nc -l 80; done
- zu 127.0.0.1 zu gehen gibt tatsächlich den Inhalt zurück. Ich musste das allerdings als root machen. Also auf eine extrem grobe Art und Weise - es kann die Arbeit erledigen, und das gefällt mir. Ich habe versucht, auf einem anderen Rechner im LAN auf my-hostnname.local zuzugreifen, und es hat auch funktioniert.SFK hier erwähnenswert
http://stahlworks.com/dev/swiss-file-knife.html
ein ausgezeichnetes Mehrzweckwerkzeug ohne Abhängigkeiten
Verfügbar in den Geschmacksrichtungen deb und rpm
sfk httpserv -port 1234
wird das aktuelle Verzeichnis bedienen
sfk httpserv -port 1234 -rw
ermöglicht auch das Hochladen von Dateien
quelle
Pure Bash: Ein Webserver in einem Shell-Skript .
Außerdem benötigen Sie xinetd (ich glaube, dass es in jeder Distribution verfügbar ist), um den Port abzuhören und das Skript bei Bedarf auszuführen, damit Sie keinen tcp-Stack usw. in bash codieren müssen.
quelle
Ich habe diese Anweisungen verwendet, um einen Webserver auf meinem CentOS-Computer zu installieren, ohne sudo zu verwenden oder Systemdateien zu berühren:
Erster Installationsknoten:
dann installiere http-server:
Führen Sie dann den http-Server an Port 12321 aus:
quelle
Ich habe die
nc
Lösung ein bisschen verbessert, damit es:filename=
Hinweis hinzu,/tmp/serveFile-$PORT
damit Sie sie später leicht töten können..
Man könnte es
nc -k -l ...
aber auch so nutzen wie man kannquelle