Preface
如果你需要一個簡單的 Web 伺服器做一些臨時性的工作,但又不想花很多時間去安裝像 Apache 這樣完整的網頁伺服器,那你可以試試看 Python 的 SimpleHTTPServer 模組,使用這個模組可以讓任何的目錄中的資料立即放上網路,而且不需要安裝其餘任何軟體,只需要 Python 就夠了。
就實際的應用來說,這樣的方式可以讓你很方便的在區域網路(local network)中分享資料,而要使用這個迷你的網頁伺服器也非常簡單,只要一行指令就可以了。
How-To
假設你的電腦 IP 位址為 192.168.0.1,而想要分享 /home/seal 中的資料,則先切換到該目錄中:
再啟動 Python 的網頁伺服器:
就這樣一行指令就完成了!非常方便。執行這行指令應該會看到這樣的輸出訊息:
這個訊息是告訴你網頁伺服器所開啟的 port 是 8000,這時候你可以開啟瀏覽器測試一下,再瀏覽器上輸入網址 http://192.168.0.1:8000/ 這樣就可以看到分享的網頁了。
如果被分享的目錄中有 index.html 這個網頁檔,則開啟這個目錄時,預設就會顯示這個網頁檔,而如果這個檔案不存在,則會自動顯示該目錄中的檔案列表。
如果你想要更改伺服器所使用的 port,則可以直接在指令的最後面指定 port number:
在預設的狀況下,伺服器會傾聽所有的網路位址,如果只想要傾聽本機的位址(localhost),就要自己撰寫指令稿(script)了:
- #/usr/bin/python
- import sys
- import BaseHTTPServer
- from SimpleHTTPServer import SimpleHTTPRequestHandler
- HandlerClass = SimpleHTTPRequestHandler
- ServerClass = BaseHTTPServer.HTTPServer
- Protocol = "HTTP/1.0"
- if sys.argv[1:]:
- port = int(sys.argv[1])
- else:
- port = 8000
- server_address = ('127.0.0.1', port)
- HandlerClass.protocol_version = Protocol
- httpd = ServerClass(server_address, HandlerClass)
- sa = httpd.socket.getsockname()
- print "Serving HTTP on", sa[0], "port", sa[1], "..."
- httpd.serve_forever()
沒有留言:
張貼留言