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

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

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

我经常在某个新文件夹中尝试新的东西,例如 JS 框架等:

/home/alexander/code/angularjs/

然后只需进入该目录并输入以下命令即可:

start-webserver-here 

这样 Web 服务器就开始监听 80 端口并提供该目录的服务,我就可以尝试我正在处理的任何工作了。

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

有更容易的方法吗?

答案1

使用

python2 -m SimpleHTTPServer 80

或者

python3 -m http.server 80

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

80如果您希望它监听其他端口,请将其替换为其他数字。对于小于 1024 的端口,它需要以 root 权限运行。

答案2

我还喜欢将 PHP 用于此目的,因为它使我能够动态运行 WordPress 之类的东西并更轻松地开发主题(但您仍然需要 MySQL):

php -S 0.0.0.0:8000

在里面相同的脚本这开始了我也开始了警卫,文件更改时会自动刷新浏览器。

答案3

如果你更喜欢红宝石,服务宝石很棒

serve

或者对于不同的端口:

serve 9000

安装gem install serve

答案4

在 Ubuntu(可能还有几乎所有其他 Linux 发行版)上,你已经拥有忙碌盒子安装。如果没有,那么在 Ubuntu 上你可以安装sudo apt install busybox-static。这样你就可以运行httpd

busybox httpd -f -vv -p 8080

然后打开 http://localhost:8080

在来源中源码您可能会发现更多详细信息。它非常有限,但几乎具有所有基本功能,如基本身份验证、通过 ETag 进行缓存验证、提供预压缩的 gzip 文件和 CGI​​ 脚本。

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

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

是的,它不是内置于 Ubuntu 中并且不太容易安装,但如果您仍然想要一个占用空间较小的 Web 服务器但 bb-httpd 不能满足您的需求,它可能会很有用。

对于 Ubuntu,我创建了一个电力供应协议其中包含 uhttpd。

相关内容