UNIX / MacOSX上的静态文件的“Ad-hoc webserver”?

时间:2010-09-26 22:47:30

标签: macos http unix webserver localhost

是否有一个小小的网络服务器,我可以从命令行调用,只从本地文件系统获取文件并通过特定端口上的HTTP提供它们?

我希望能够做到这样的事情:

$ cd ~/Sites/mysite
$ serve . 10.0.1.1 8080

这应该启动一个侦听10.0.1.1:8080的网络服务器,并提供当前目录(“。”)中的文件 - 没有PHP,ASP或任何所需的文件。

任何建议都非常感谢。

4 个答案:

答案 0 :(得分:71)

如果安装了python:

$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

答案 1 :(得分:5)

$ python -m SimpleHTTPServer [port]

将在当前目录中启动一个Web服务器,为其中的任何文件提供服务。

在少数情况下,这将无法正常工作,例如服务器是单线程的(因此没有同时下载)并且不处理字节范围请求(客户期望Range:支持通常会严重失败)。

答案 2 :(得分:2)

Apache HTTPD内置于Mac OS X中 - 只需在“共享首选项”中打开“Web共享”。

要使它也可以通过端口8080工作,您需要添加一些配置。请参阅此article on Serverfault了解起点。

答案 3 :(得分:2)

Python3可以使用http.server通过HTTP提供当前目录:

$ python3 -m http.server

其中

  • python3当前版本的python
  • -m代表模块
  • http http包
  • http.server服务器模块(http包的)

默认情况下,http.server侦听端口8000,但您可以像这样指定另一个:

$ python3 -m http.server 8080