如何在任何文件夹中轻松启动网络服务器?

Ale*_*ner 145 webserver

我正在寻找一种相对轻松的方式来在我指定的任何文件夹(或者更好的是,我正在启动的位置)中启动具有文档根目录的 Web 服务器。

我经常在这里的某个新文件夹中尝试诸如 JS 框架之类的新东西:

/home/alexander/code/angularjs/
Run Code Online (Sandbox Code Playgroud)

然后进入这个目录并输入如下内容会很方便:

start-webserver-here 
Run Code Online (Sandbox Code Playgroud)

以便网络服务器开始侦听端口 80 并为该目录提供服务,我可以尝试我正在处理的任何内容。

我已经安装了 XAMPP,但它似乎是带有文档根目录的基本 apache,我必须更改,甚至具有根权限,以及为每个文件夹授予权限等。

有更容易的方法吗?

Flo*_*sch 220

python2 -m SimpleHTTPServer 80
Run Code Online (Sandbox Code Playgroud)

或者

python3 -m http.server 80
Run Code Online (Sandbox Code Playgroud)

启动一个简单的 HTTP 服务器。

80如果您希望它在不同的端口上侦听,请替换为另一个号码。对于小于 1024 的端口,它需要以 root 权限运行。

  • 与此等效的 python 3.x 是`python3 -m http.server` (16认同)
  • @dibs 是的,它们都可以并行运行。但是不,不在同一个端口上。 (3认同)

met*_*mit 29

我也喜欢为此目的使用 PHP,因为它使我能够即时运行 WordPress 之类的东西并更轻松地开发主题(不过,您仍然需要 MySQL):

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

在启动它的同一个脚本中,我还启动了guard,它会在文件更改时自动刷新浏览器。

  • 请注意,内置服务器功能是[在 5.4.0 中添加的](http://www.php.net/manual/en/features.commandline.webserver.php) (3认同)

wil*_*ted 18

如果您更喜欢红宝石,那么服务宝石很棒

serve
Run Code Online (Sandbox Code Playgroud)

或者对于我不同的端口:

serve 9000
Run Code Online (Sandbox Code Playgroud)

安装 gem install serve


Ste*_*uls 16

这在 Ruby 中也是可能的,而无需安装 gem。

ruby -run -e httpd . -p5000


Ser*_*rev 10

在 Ubuntu(可能还有几乎所有其他 Linux 发行版)上,您已经安装了BusyBox。如果没有,那么您可以在 Ubuntu 上安装sudo apt install busybox-static. 所以你可以运行httpd

busybox httpd -f -vv -p 8080
Run Code Online (Sandbox Code Playgroud)

然后打开http://localhost:8080

在来源httpd.c中您可以找到更多详细信息。它非常有限,但具有几乎所有基本功能,例如基本身份验证、ETag 缓存验证、提供预压缩 gzip 文件和 CGI​​ 脚本。

顺便说一句,BusyBox 还广泛应用于嵌入式设备:WiFi 路由器、电视盒等。

但是 OpenWrt(WiFi 路由器的开源固件)使用自己的 http 服务器:uhttpd。它受到 bb-httpd 的启发,并具有更多功能,例如内置 Lua 解释器。您可以在任何其他 Linux 上编译并安装它。

是的,它没有内置在 Ubuntu 中,安装起来也不那么容易,但是如果您仍然想要一个占用空间较小的 Web 服务器,但 bb-httpd 不符合您的需求,这可能会很有用。

对于 Ubuntu,我创建了一个包含 uhttpd 的PPA 。


小智 8

只需使用http-server,它是一个零配置的命令行服务器。

安装它的最简单方法是通过 npm:

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

用法:

http-server [path] [options]
Run Code Online (Sandbox Code Playgroud)

[path]./public如果文件夹存在,则默认为,./否则为。

要查看您的服务器的运行情况,请访问http://localhost:8080。使用-p选项设置不同的端口。

更多选项请访问:https : //www.npmjs.com/package/http-server