Skapa en snabb webbserver via Terminal Command Line och Python

Vill du snabbt dela en fil, testa någon kod eller sända något? Du kan omedelbart skapa en webbserver från den aktuella katalogen med hjälp av inget annat än python, yup, no apache, no nginx, no litespeed, all python, som skickas med ganska mycket alla unixvariationer idag. Kommandot är anmärkningsvärt enkelt med tanke på hur användbar det är, och testa det själv öppnar ett terminalfönster och en webbläsare.

Detta trick startar en enkel webbserver direkt med ingenting annat än python, det fungerar i Mac OS X, Linux, FreeBSD och någon annan unix-plattform som har python.

Så här startar du en snabb webbserver med Python

För att skapa den aktuella webbservern från kommandoraden skriver du följande i vilken katalog du vill ha åtkomst via webbläsare och HTTP:

Starta en enkel webbserver i Python 2

python -m SimpleHTTPServer

Starta Simple Web Server i Python 3

python -m http.server

Detta kommer att publicera den aktuella katalogen som en webbserver omedelbart, så om du har en index.html-fil som omedelbart visas, annars kommer det bara att lista katalogen innehåll på antingen your localhost IP eller "0.0.0.0". Observera att port 8000 är standardportinställningen för den här funktionen, vilket innebär att du ska komma åt webbservern från en webbläsare, en skulle ange följande adress: http://0.0.0.0:8000

Kom ihåg att utan en index.htm eller index.html-fil i katalogen visas en enkel kataloglista av CWD / PWD i stället för webbläsaren.

När en gång är igång uppdateras terminalen som sidor och data laddas från pythons webbserver, vilket visar standard http-loggningsinformation som GET och PUSH-förfrågningar, vilka filer som kommer åt och av vilka, 404 fel, IP-adresser, datum, tider och allt du kan förvänta dig från en vanlig http-logg som om du stavade en apache-åtkomstloggfil.

Du kan bli snyggare om du vill ha och ange en port, vilket ger en viss obskärlighet till webbservern om du hoppas att bara sänder något till en viss individ, eller om du bara inte vill att den ska dyka upp på en standard 8000 portscan. Allt du behöver göra är att ange ett portnummer i slutet av ovan nämnda kommando, så här:

python -m SimpleHTTPServer 4104

Detta skulle göra att webbservern lanseras i den nuvarande katalogen vid IP med port 4104, till exempel, låt oss anta lokalhost-IP: http://127.0.0.1:4104 eller http://0.0.0.0:4104 beroende på din inställningar.

Det här är en väldigt praktisk tips om du gör en snabb webutveckling och vill omedelbart kontrollera den i en webbläsare eller visa den till någon annan, och du vill inte ta dig tid till sftp eller begå det till ett förråd. Detta borde fungera på alla Unix variant-operativsystem, inklusive FreeBSD, Linux, Ubuntu, Redhat, och självklart ingår Mac OS X.

Videon nedan visar att en pythonserver lanseras i en katalog med en enkel index.html-fil. Det visar också hur löpande python-kommandot återspeglar vad som händer med http-anslutningen som en vanlig http-serverlogg skulle:

Låt oss veta om du hittar några särskilt användbara användningsområden eller extra hemligheter för det här lilla tricket.