#1 楼
是的,nweb。可以在这里找到:nweb.c
(以前在ibm.com)
要编译nweb.c:
gcc -O -DLINUX nweb.c -o nweb
评论
它运作良好,但有2个用户注释:1)它从提供的目录中提供index.html,2)来自nweb --help:“不支持:URL包括“ ..”,Java,Javascript,CGI”。因此,例如,Live.js在文件更新时自动刷新页面不起作用。
–xealits
19/12/13在13:41
#2 楼
试试SimpleHTTPServer:python -m SimpleHTTPServer
# or the Python 3 equivalent
python3 -m http.server
它应该可以服务于CWD(例如index.html)中的http://0.0.0.0:8000。
评论
您可以选择指定这样的端口号:python3 -m http.server1337。据我所知,您无法指定绑定到哪个IP。注意:要监听端口80,您必须具有root特权,例如:sudo python3 -m http.server 80
–Hubro
2014年10月30日10:49
这是一个不错的选择,但是在重定向到添加了斜杠的URL时存在问题。这就是为什么我更喜欢扭曲版本:twisted -n web -p 8000 --path。
– Greg Dubicki
15年7月14日在8:49
要将默认侦听端口8080(使用python2)更改为其他端口,只需在以下端口后放置端口号:python -m SimpleHTTPServer 3000
–Maksim Luzik
19年2月1日在9:56
#3 楼
http静态服务器单线列表很大:要获得此列表,必须有一个解决方案:
保存静态文件使用当前目录(或指定目录)作为服务器根目录
可以使用一个单行命令运行(依赖关系是一次性的,就可以了)
具有适当的mime类型的文件类型(html,css,js,图像),
除了命令本身(不需要框架特定的服务器等)之外,不需要配置(通过文件或其他方式)
,或者必须运行,或者具有可以在前台运行的模式(即没有守护程序)
例如:
扭曲(Python)
twistd -n web -p 8000 --path .
Erlang:
erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'
Plack (Perl)
cpan Plack
plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000
webfs
webfsd -F -p 8000
Ruby 1.9.2 +
ruby -run -ehttpd . -p8000
#4 楼
使用快速,轻巧的node.js
。 或
只需使用简单的
nc
netcat命令即可在端口上启动快速Web服务器,并提供包含服务器响应标头的文件内容。维基百科的参考资料:
http://en.wikipedia.org/wiki/Netcat#Setting_up_a_one-shot_webserver_on_port_8080_to_present_the_content_of_a_file
{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat some.file; } | nc -l -p 8080
{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <some.file)\r\n\r\n"; cat some.file; } | nc -l -p 8080
评论
仅运行交互式外壳的裸节点.js进程占用15MB(共享7.5)RAM。然后,您必须在其中运行HTTP服务器。人们看到它是轻量级的,这很有趣。 ;-)
– jpc
2012年3月2日14:00
是的,我认为它重量轻,因此可以以较少的内存占用空间很好地扩展。请阅读thecodinghumanist.com/blog/archives/2011/5/6/…但是,如果您发现使用node.js麻烦,那么简单的netcat实用程序就可以很好地达到短暂的目的。
– Nikhil Mulley
2012年3月2日15:28
如果将节点与Apache进行比较,您当然是对的,但是我发现有趣的是,与cr.yp.to/publicfile.html或类似内容相比,节点的外观如何。 :)
– jpc
2012年6月6日上午10:54
+1基于nc的解决方案:)。请注意,回显的-ne标志可能不是可移植的,而改用printf命令可能是更好的选择。
–WhiteWinterWolf
16年11月5日,9:35
除非您使用第二个nc命令,否则Chrome不会停止跳动。另外,并非两个nc命令都将在响应后退出。您可以继续使用以下命令重新启动它:做{echo -ne“ HTTP / 1.0 200 OK \ r \ nContent-Length:$(wc -c
– Ray Foss
19 Mar 7 '19 at 18:10
#5 楼
自版本5.4.0起,PHP还具有内置的Web服务器:php -S localhost:8000
您可以使用
-t
指定Web服务器的文档目录,例如:php -S localhost:8000 -t /var/lib/www
如果您希望能够通过网络访问服务器,则:
php -S 0.0.0.0:8000 -t /var/lib/www
评论
哇,简单又有用!
– Michael-O
15年5月16日在19:08
如果您想在本地测试php脚本,那么这是一个很好的选择。
–erik
15年7月27日在9:51
#6 楼
Node具有一个简单,快速,轻便的HTTP服务器模块。要安装:sudo npm install http-server -g
(假设您已经安装了
node
和npm
。)要运行它,请使用当前目录作为网站root:
http-server
这将在
http://0.0.0.0:8080/
上创建服务器。评论
有用。我在FreeBSD机器上有一个Node项目,我只是在项目目录中运行npm install -D http-server,然后将以下行添加到我的package.json文件中:“ scripts”:{“ build”:“ webpack && cd src / public && http-server“},现在我只需要在项目目录上运行npm run build即可启动HTTP服务器,默认情况下侦听端口8080。
–user3405291
17/09/14在12:52
首先,我尝试了“ python3 -m http.server”,但是它是单线程的,一次只能下载一个客户端,其他需要等待。由于Node的异步特性,因此使用Node.js的此解决方案效果更好。如果要与几个人共享文件,请使用此功能。
–贾巴
17年9月14日在16:14
该模块可能是“ light”,而node.js不是。您将运行JS运行时只是为了提供静态文件。
– c z
20 Dec 17 '15:02
#7 楼
尝试在Python中使用SimpleHTTPServer
。mkdir ~/public_html
command_to_generate_output > ~/public_html/output.txt
(cd ~/public_html; python -c 'import SimpleHTTPServer,BaseHTTPServer; BaseHTTPServer.HTTPServer(("", 8080), SimpleHTTPServer.SimpleHTTPRequestHandler).serve_forever()')
前两行是为Web服务器设置的。最后一行创建了一个简单的Web服务器,该服务器在端口8080上打开,仅提供来自
~/public_html
的文件。如果该目录中只有一个文件,则仅公开该文件:http://localhost:8080/output.txt
。评论
这就是我使用的方法,只需复制最后一行并将其粘贴到.py文件中,然后使用python运行它(或使其可执行)。请记住,您必须运行python 2.x解释器。
– Hanan N.
2012年2月20日在21:40
#8 楼
简单的Ruby一个衬里服务目录:ruby -run -e httpd . -p 8080
#9 楼
./devd -o -a -P devd:devd .
-o在浏览器中打开URL
-a,用于所有接口
-P auth user / pass
。在同一目录中提供文件
https://github.com/cortesi/devd/releases
#10 楼
一个简单的修正/增强稍微不公平(恕我直言)的否决答案也可能有效。让我们先设置html文件... />现在,您可以使用以下这种方法来实现它:例如:echo '<html><head><title>My Test File</title></head><body><h1>OK!</h1></body></html>' > my_file.html
评论
您的HTML中有一个错字:
应该是。我试图对其进行编辑,但是不允许编辑少于6个字符!
。我试图对其进行编辑,但是不允许编辑少于6个字符!
–史蒂夫·弗利(Steve Folly)
19/12/3在9:54
@SteveFolly Thx,已修复!
– Vijay
19/12/4在10:11
#11 楼
Oldschool Ruby WEBrick HTTP服务器:#!/usr/bin/env ruby
require 'webrick'
server = WEBrick::HTTPServer.new(:Port => 8000,
:DocumentRoot => '~/webrickroot')
# stop server with Ctrl-C
trap('INT') { server.stop }
server.start
确保为您的设置修改
DocumentRoot
。另请参见。#12 楼
另一种选择是安装lighttpd。以下是在Unbuntu 12.04 LTS上安装lighttpd的建议步骤。apt-get update
apt-get upgrade --show-upgraded
apt-get install lighttpd
ifconfig
http://[your-ip-address]:80
/etc/lighttpd/lighttpd.conf (Edit to add server.port)
server.port = "8080"
注意:Documentroot是所有可访问Web的文件的位置。位置是/ var / wwww
以上步骤将安装基本的lighttpd Web服务器。有关更多信息,请参考以下参考文献
参考文献:
lighttpd Ubuntu 12.04上的Web服务器(精确)
但不起作用。 lighttpd.pid权限被拒绝
入门-Linode
用于在Linux上测试的Web服务器
技术提示:具有Python的非常简单的HTTP Server
重量轻,开源Web服务器是正确的为您服务吗?
6种出色的Linux /开源Web服务器
Lighttpd配置
#13 楼
您可以使用xinetd。将以下配置文件放入/etc/xinetd.d/并重新加载xinetd服务:#14 楼
试试caddycurl https://getcaddy.com | bash
从/ var / www提供内容
caddy -root /var/www "browse"
现在您可以在http:// localhost找到服务器:2015
https://caddyserver.com/
https://nwgat.ninja/quick-easy-caddy-a-http-2-web-server-连扭/
评论
我喜欢只从本地目录登录,并喜欢拥有现代且安全的网络服务器。
–杜瓦莱
19-10-16在8:54
#15 楼
放入bash脚本的简单netcat示例:while true ; do nc -l 80 <index.html ; done
评论
完全无法使用HTTP。
–德罗伯特
2014年8月6日上午11:54
我尝试了[1 = 1];做回声“测试” | nc -l 80;完成-转到127.0.0.1确实返回了内容。我必须以root身份这样做。因此,以一种非常粗略的方式-它可以完成工作,我喜欢这样。我尝试去局域网中另一台机器上的my-hostnname.local,它也起作用。
– Unfa
17年12月11日在11:33
#16 楼
我按照以下说明在CentOS计算机上安装Web服务器,而不必使用sudo或触摸任何系统文件:第一个安装节点:
$ cd ~
$ wget https://nodejs.org/download/release/latest/node-v8.6.0-linux-x64.tar.gz
$ tar node-v8.6.0-linux-x64.tar.gz
然后安装http-server:
$ export PATH=~/node-v8.6.0-linux-x64/bin:$PATH
$ npm install http-server
然后在端口12321上运行http-server:
$ ~/node-v8.6.0-linux-x64/bin/node_modules/http-server/bin/http-server -p 12321
评论
这似乎是不需要sudo或任何非标准实用程序的唯一答案。谢谢! (顺便说一句,到nodjs的链接已过期且已损坏)。
– Dmytro Bogatov
20 Dec 12'在23:18
#17 楼
我对nc
解决方案做了一些改进:添加
filename=
提示,循环运行直到Ctrl + C,
将PID保存到
/tmp/serveFile-$PORT
,以便以后可以轻松将其杀死。。
#!/bin/bash
FILE=;
if [ "$FILE" == "" ] ; then echo "Usage: q4312078q <file-to-serve> [<port:7979>]"; exit; fi
PORT=${2:-7979}
echo Serving $FILE at $PORT, PID: $$
echo $$ > /tmp/serveFilePID-$PORT
while true; do
{ echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c <$FILE)\r\nContent-Disposition: inline; filename=\"$(basename $FILE)\"\r\n\r\n"; cat $FILE; } | nc -l $PORT
CODE=$?
#echo "Code: $CODE";
if [ $CODE -gt 128 ] ; then break; fi;
done;
rm /tmp/serveFilePID-$PORT
也可以使用
nc -k -l ...
,但是通过这种方式,您可以在所提供的文件之间执行自定义操作,
使多个文件交替。
#18 楼
在这里值得一提的SFKhttp://stahlworks.com/dev/swiss-file-knife.html
无依赖的优秀多用途工具
有deb和rpm两种版本
sfk httpserv -port 1234
将提供当前目录
sfk httpserv -port 1234 -rw
也将允许文件上传
#19 楼
纯bash:shell脚本中的Web服务器。此外,您将需要xinetd(我相信在任何发行版中都可以使用)来监听端口并在需要时运行脚本,因此您无需在bash中编码tcp堆栈等。
#20 楼
我的5美分,用shell写成:https://gitlab.com/mezantrop/supermaticSupermatic可以在FreeBSD和任何其他具有Bourne Shell
和inetd的操作系统上运行样的守护程序。它提供静态HTML和TXT文件以及
GIF,JPEG和PNG图像格式。什么是其他标准和
功能?不,从没听说过。
评论
请参阅有问题的答案stackoverflow.com/a/4994745,在Stack Overflow上的python中的一行ftp服务器。为什么不只使用netcat?
确实!使用FTP,就像HTTP完成之前的万维网一样! (尽管我想它在1990年代初还不像世界范围内那样。)
本要点中已编译了大量方法