如何轻松启动任何文件夹中的Web服务器?


115

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

我经常在这里的新文件夹中尝试JS框架之类的新事物:

/home/alexander/code/angularjs/

然后,只需进入该目录并键入类似的内容即可:

start-webserver-here 

这样网络服务器就可以开始侦听端口80并提供此目录服务,并且我可以尝试进行任何工作。

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

有更容易的方法吗?


有人已经编制了一个大的班轮清单来实现这一目标:gist.github.com/willurd/5720255
Abhinav Bhatia

Answers:


174

采用

python2 -m SimpleHTTPServer 80

要么

python3 -m http.server 80

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

80如果希望它在其他端口上侦听,请替换为另一个数字。对于<1024的端口,它需要以root特权运行。


1
这正是我一直在寻找的!丹科
亚历山大·里希施泰纳

1
您可以与Apache并行运行吗?当然在不同的端口上(尽管我欢迎您告诉我它们可以使用相同的端口,但还是要打动我)。
2013年

3
@dibs是的,它们都可以并行运行。但是不,不在同一端口上。
2013年

11
相当于python 3.x的是python3 -m http.server
Stefano Palazzo

1
多数民众赞成为什么我这么喜欢stackoverflow。来这里寻找确切的问题,我想找到一个解决方案...从网络服务器上运行angularjs。非常感谢Florian Deisch
SK176H 2015年

24

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

php -S 0.0.0.0:8000

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


2
请注意,内置服务器功能是在5.4.0
sierrasdetandil 2013年

是的,您需要较新的版本之一。如果这样做,则13.10版本库中的版本sudo apt-get install php5为5.5.3,因此应该可以。
metakermit

太好了!正是我想要的!
Prakash Raman 2015年



6

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

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

sudo npm install http-server -g

用法:

http-server [path] [options]

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

要查看运行中的服务器,请访问http:// localhost:8080。使用-p选项设置其他端口。

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


不使用此功能的唯一原因是它需要本地未安装的rpm。几乎在每个OS上都预安装了其他提及ruby和python的解决方案,因此与安装命令来运行服务器没有任何先决条件。
jamescampbell '18 -10-2

3

由于文件夹名称中包含angularjs,因此它似乎是一个angular js应用程序。在这种情况下,请务必检查yeoman

引用它的网站

Yeoman 1.0不仅仅是一个工具。这是一个工作流程;协同工作的工具和最佳做法的集合,以使Web开发变得更好。

捆绑grunt服务器是许多其他事情之一。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.