如何设置最简单的 HTTP 本地服务器?

Dis*_*ame 51 server html localhost webserver r

我使用R Studio IDE做很多事情,其中​​之一是使用blogdown 包为本地网站提供服务,该Hugo 的一个分支。我在R Studio 中编写代码并使用blogdown::serve_site()命令预览站点。这是我所知道的预览静态 HTML 站点的最简单方法。使用Hugo R Studio 会强制我的浏览器转到该127.0.0.1:XXXX位置,并且我的本地站点会在我眼前预览。

我可以使用 Ubuntu 18.04 本地服务本地站点吗?如何?我想它应该很简单。在网上搜索我找不到任何简单的方法来做到这一点。如果我只是直接在浏览器中打开静态 HTML 文件,它们就会出现问题。所有图像链接立即断开。标题、超链接等的格式与我使用Hugo在本地提供页面时的格式不同。

编辑- 我并没有真正定义我的术语“简单性”。答案中有两种不同的方法(到目前为止),一种对最终用户来说最简单,一种对我的计算机执行的操作来说很简单。我喜欢这两种方法,并且在我测试它们时欢迎使用任何方法的答案。谢谢你。

j-m*_*ney 96

Ubuntu 发布时默认使用 python3,并且他们竭尽全力使这对我们来说非常容易:D

要在端口port上启动 http 服务器,只需键入

python -m http.server port
Run Code Online (Sandbox Code Playgroud)

如果要共享文件和目录,请 cd 到要提供服务的任何目录

cd /my/html/files
python -m http.server 8080
Run Code Online (Sandbox Code Playgroud)

如果您想使用默认地址以外的地址,0.0.0.0您可以使用--bind

例如:python -m http.server 8080 --bind 127.0.0.1将在地址为他们服务127.0.0.1:8080:)

编辑:无论它是否真的很长,我都会留给读者

同样为了您的方便,这里有一个链接到文档https://docs.python.org/3/library/http.server.html

  • 如果您使用的是非常旧的 ubuntu 版本:在 python2 中,该模块称为“SimpleHTTPServer”。但是请注意,它始终绑定到“0.0.0.0”,您只能选择端口,因此如果您处于安全网络中,请*独家*使用它。 (3认同)
  • 它只是`XXXX`,但默认情况下它将在`0.0.0.0:port` 提供服务,我将更新我的答案以反映如何绑定到不同的地址 (2认同)

Ric*_*ard 50

是一行中的 HTTP 服务器列表。我确信有一个适合您的目的/现有工具。

此后是链接的一个子集,其中包含我认为最方便的链接。

Python:

python -m http.server 8000
Run Code Online (Sandbox Code Playgroud)

红宝石:

ruby -run -ehttpd . -p8000
Run Code Online (Sandbox Code Playgroud)

节点:

npm install -g http-server
http-server -p 8000
Run Code Online (Sandbox Code Playgroud)

博士:

php -S 127.0.0.1:8000
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案。它提供有关许多不同选项的信息。 (3认同)
  • 在 python 2.7 中,命令是:`python -m SimpleHTTPServer 8000` (3认同)
  • 我强烈推荐节点选项(http-server)。它是功能最丰富的一款,支持部分下载等,如果您要流式传输视频,这非常有用。 (2认同)

sol*_*iCe 7

设置静态 http 站点的一种简单方法是使用darkhttpd

ubuntu 中没有用于此的软件包,但该软件只是一个源文件,您可以使用网站上的 tarball 或 git 下载:

git clone https://unix4lyfe.org/git/darkhttpd
cd darkhttpd
Run Code Online (Sandbox Code Playgroud)

然后运行 make,你就有了darkhttpd可执行文件。(将其放入/usr/local/bin以使每个用户都可以使用)

./darkhttpd /path/to/wwwroot
Run Code Online (Sandbox Code Playgroud)

或者

./darkhttpd --help
Run Code Online (Sandbox Code Playgroud)

获取有关命令的帮助

可以指定要使用的目录或端口以及许多其他选项。