我正在寻找一种相对轻松的方法来启动Web服务器,该Web服务器的文档根目录位于我指定的任何文件夹中(或者更好的是,我要在其中启动)。框架或类似文件放在以下位置的新文件夹中: >
/home/alexander/code/angularjs/


,以便Web服务器开始在端口80上侦听并提供此目录,并且我可以尝试使用正在运行的任何内容。但是似乎它是基本的Apache,我必须更改它的文档根目录,甚至具有root特权,还需要为每个文件夹授予权限等。

评论

有人编制了一个大的衬板清单来实现这一目标:gist.github.com/willurd/5720255

#1 楼

使用

python2 -m SimpleHTTPServer 80




python3 -m http.server 80


启动简单的HTTP服务器。

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

评论


这正是我一直在寻找的东西!丹科

–亚历山大·里希斯坦纳
13年15月15日在11:01

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

– dibs
13年15月15日在11:17

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

–丹
13年11月15日在11:28

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

– Stefano Palazzo
13年11月19日在10:34

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

– SK176H
2015年8月9日,1:14

#2 楼

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

php -S 0.0.0.0:8000


在启动该脚本的同一脚本中,我还启动了防护功能,该功能在文件更改时自动刷新浏览器。

评论


请注意,内置服务器功能是在5.4.0中添加的

– sierrasdetandil
13年11月19日在12:03



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

–metakermit
13年11月19日在23:54

太好了!正是我想要的!

– Prakash拉曼
2015年11月3日15:36

#3 楼

如果您更注重红宝石,那么发球宝石很棒。

serve


,或者对于我不同的端口: />安装gem install serve

评论


这可以正常工作,但是需要ruby> = 1.9.3

– Valerio Schiavoni
2015年10月19日在13:09

是的,但是1.9.3就是eol。安全补丁不再回传。建议使用rvm管理旧式红宝石。它们不应该是系统的默认值

–将
2015年10月19日在13:27

#4 楼

在Ruby中也可以在不安装gem的情况下实现。

ruby -run -e httpd . -p5000

评论


没为我工作。您尝试过哪个版本的红宝石?

– Valerio Schiavoni
2015年10月19日在13:09

按照Ruby 2.5.1的说明工作。

–拉斐尔
18年7月13日在13:17

此页面上仅支持字节范围请求的答案!

–新时代后现代
19/12/2在10:53

#5 楼

只需使用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。几乎在每个操作系统上都预安装了其他提及ruby和python的解决方案,因此与安装命令来运行服务器没有任何先决条件。

–詹姆斯·坎贝尔
18-10-2在15:41

#6 楼

在Ubuntu(可能还有几乎所有其他Linux发行版)上,您已经安装了BusyBox。因此,您可以运行httpd:
busybox httpd -f -p 8080

,然后打开http:// localhost:8080
在源代码httpd.c中,您可能会找到更多详细信息。
它非常有限,但几乎所有基本功能,如基本身份验证,gzip压缩和CGI脚本。
顺便说一句,BusyBox也广泛用于嵌入式设备:WiFi路由器,电视盒等。
但是OpenWrt是WiFi路由器的开源固件,它使用自己的http服务器:uhttpd。而且您可以在其他任何Linux上编译和安装它。不能满足您的需求。

#7 楼

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

要引用它的网站


Yeoman 1.0不仅仅是一个工具。这是一个工作流程;结合使用的工具和最佳实践,可以使Web开发变得更好。

#8 楼

您可以为此使用Nginx:https://gist.github.com/asterite3/89236d1753a669e173531aca4b87afdc

这不是单线程的(如果从例如google访问,服务器不会为其他客户端挂起-chrome),并且非常易于配置和有效。