为当前目录提供服务的简单文件服务器[关闭]
Posted
技术标签:
【中文标题】为当前目录提供服务的简单文件服务器[关闭]【英文标题】:Simple file server to serve current directory [closed] 【发布时间】:2013-02-26 00:59:45 【问题描述】:我正在寻找一个简单的 bin,我可以在 shell 中启动它并让它服务于当前目录(最好不是 ..),可能还有一个 -p
用于指定端口。因为它应该是一个开发服务器,所以默认情况下它应该只允许来自本地主机的连接,也许可以选择另外指定。越简单越好。
不确定在此处使用哪些标签。
【问题讨论】:
你应该把它发到serverfault.com 上。 红宝石解决方案:***.com/questions/3108395/… 关于“程序员常用的软件工具”的问题是话题。当您进行 Web 开发(甚至现在其他类型的开发)时,您最终需要通过 HTTP 访问本地文件。也许这仍然是题外话,因为它要求提供工具推荐,但我不同意给出的关闭原因。 【参考方案1】:有一个 Perl 应用程序 App::HTTPThis 或者我经常使用小型 Mojolicious 服务器来执行此操作。不久前见我的blog post。
创建一个名为server.pl
的文件。把这个放进去。
#!/usr/bin/env perl
use Mojolicious::Lite;
use Cwd;
app->static->paths->[0] = getcwd;
any '/' => sub
shift->render_static('index.html');
;
app->start;
安装 Mojolicious:curl get.mojolicio.us | sh
,然后运行 morbo server.pl
。
应该可以,如果需要,您可以调整脚本。
【讨论】:
我不喜欢用管道进入外壳。 好的,然后通过 cpan 安装:cpan -i Mojolicious
或通过 apt(虽然它可能有点旧。这只是一个快速安装脚本 :-)
Mojolicious 应用程序的单行版本是:perl -Mojo -E 'a->static->paths(["."]);a->start' daemon
不起作用。我看不到任何目录。我收到一个带有 mojo 的错误页面。我错过了什么?【参考方案2】:
对于 Node,有 http-server
:
$ npm install -g http-server
$ http-server Downloads -a localhost -p 8080
Starting up http-server, serving Downloads on port: 8080
Hit CTRL-C to stop the server
Python 有:
Python 3:python -m http.server --bind 127.0.0.1 8080
Python 2:python -m SimpleHTTPServer 8080
请注意,Python 2 没有--bind
选项,因此它将允许所有连接(不仅仅是来自localhost
)。
【讨论】:
我也想查看文件夹和目录的数量【参考方案3】:python3 -m http.server
或者如果您不想使用默认端口 8000
python3 -m http.server 3333
或者如果您只想允许来自本地主机的连接
python3 -m http.server --bind 127.0.0.1
请参阅docs。
等效的 Python 2 命令是
python -m SimpleHTTPServer
python -m SimpleHTTPServer 3333
没有--bind
选项。
请参阅Python 2 docs。
【讨论】:
还有一个目录参数以防您不想要当前目录:python3 -m http.server -d /path/to/web/dir
【参考方案4】:
使用Twisted Web:
twistd --pidfile= -n web --path . --port 8080
--pidfile=
禁用 PID 文件。没有它,将在当前目录中创建一个 twistd.pid
文件。你也可以使用--pidfile ''
。
【讨论】:
以上是关于为当前目录提供服务的简单文件服务器[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 htdocs 文件夹之外制作 XAMPP / Apache 服务文件 [关闭]