Maak een Instant Web Server via Terminal Command Line en Python

Wil je snel een bestand delen, een code testen of iets uitzenden? U kunt direct een webserver maken uit de huidige map door niets anders te gebruiken dan python, yup, geen apache, geen nginx, geen litespeed, allemaal python, die tegenwoordig vrijwel elke unix-variant bevat. De opdracht is opmerkelijk eenvoudig gezien het nut ervan, en test het zelf, open een terminalvenster en een webbrowser.

Deze truc begint meteen met een simpele webserver met niets dan python, het werkt in Mac OS X, Linux, FreeBSD en elk ander unix-platform met python.

Hoe een Instant Web Server met Python te starten

Als u de instant-webserver wilt maken vanaf de opdrachtregel, typt u het volgende in de map die u via browsers en HTTP toegankelijk wilt hebben:

Start een eenvoudige webserver in Python 2

python -m SimpleHTTPServer

Start Simple Web Server in Python 3

python -m http.server

Hiermee wordt de huidige directory onmiddellijk als een webserver gepubliceerd, dus als u een index.html-bestand hebt dat onmiddellijk wordt weergegeven, anders wordt alleen de inhoud van de map weergegeven op uw localhost-IP of "0.0.0.0". Houd er rekening mee dat poort 8000 de standaardpoortinstelling voor deze functie is, wat betekent dat u vanaf een browser toegang hebt tot de webserver door het volgende adres in te voeren: http://0.0.0.0:8000

Onthoud dat zonder een index.htm- of index.html-bestand in de map, in plaats daarvan een eenvoudige directorylijst van de CWD / PWD in de browser wordt weergegeven.

Als de terminal eenmaal is gestart, wordt deze bijgewerkt naarmate de pagina's en gegevens worden geladen vanaf de Python-webserver, met standaard http-logboekinformatie zoals GET- en PUSH-aanvragen, welke bestanden worden geopend en door wie, 404-fouten, IP-adressen, datums, tijden en alles wat je van een standaard http-log zou verwachten, alsof je een apache-toegangslogbestand volgt.

Je kunt een liefhebber krijgen als je wilt en een poort specificeren, waardoor de webserver een zekere mate van onduidelijkheid krijgt als je hoopt alleen iets naar een specifiek persoon te zenden, of als je het gewoon niet wilt laten verschijnen op een standaard 8000 portscan. Het enige dat u hoeft te doen, is een poortnummer opgeven aan het einde van het bovengenoemde commando, zoals:

python -m SimpleHTTPServer 4104

Dit zou de webserver lanceren in de huidige map aan het IP met poort 4104, laten we bijvoorbeeld het localhost IP: http://127.0.0.1:4104, of http://0.0.0.0:4104 aannemen, afhankelijk van uw instellingen.

Dit is een erg handige tip als je wat snelle webontwikkeling aan het doen bent en je wilt het onmiddellijk in een browser checken of aan iemand anders laten zien, en je wilt geen tijd nemen om te sftp of het te verbinden met een repository. Dit zou moeten werken op elk Unix-besturingssysteem, inclusief FreeBSD, Linux, Ubuntu, Redhat, en natuurlijk is Mac OS X ook inbegrepen.

De onderstaande video toont een pythonserver die wordt gestart in een map met een eenvoudig index.html-bestand, en laat ook zien hoe de opdracht running python weergeeft wat er gebeurt met de http-verbinding zoals een normaal http-serverlog zou doen:

Laat het ons weten als u bijzonder nuttige gebruiken of extra geheimen vindt voor deze geweldige kleine truc.