从任何目录运行Web服务器


9

我正在写一个小型网站,但是我不想弄清楚如何安装和配置完整的LAMP堆栈以从~/home目录中测试该网站。那将是完全破坏性的和不必要的。

我只想拥有一个目录,例如~/home/Documents/Website,从该文件夹运行一个小型Web服务器作为网站的“ home”文件夹。

我知道Jekyll可以做类似的事情,但是它似乎只能与它构建和配置的基于Ruby / Jekyll的站点一起使用。

难道没有一些我可以轻松安装然后运行非常简单的小型Web服务器程序吗?

例如,如果我只需要从命令行运行类似的东西simple-server serve ~/home/Documents/Website,然后导航到例如localhost:4000测试站点的工具或其他工具,那将是完美的。

如果在Ubuntu中已经可以做到这一点,但我不知道如何做,请告诉我。


您拥有哪种文件php python或普通文件html
2014年

@ dan08目前,正好是htmlcssNodeJS将来可能要添加,但是我将进行其他设置。
etsnyman 2014年

因此,您只需在Web浏览器中打开这些文件,而无需服务器。
2014年

你能澄清你的问题吗?从/ var / www / html提供文档确实比从您的主目录提供文档容易得多。您可以通过两种方式将Apache和mysql,php或其他任何可能的方式安装在一起。要使用/ va / www / html,只需复制文件。将Apache配置为从主目录提供文件的工作量更大,因为您必须启用主目录或编辑apache配置文件。在这两个位置,您仍然必须具有可用于www-data的目录/文件。我不明白你觉得有什么困难。
豹2014年

@ dan08从file://地址而不是http://地址提供服务存在严重的限制。某些链接和小的Javascript片段根本无法工作。
etsnyman 2014年

Answers:


10

如果您安装了php,则可以使用php内置服务器来运行html / css和/或php文件:

cd /path/to/your/app
php -S localhost:8000

作为输出,您将获得:

Listening on localhost:8000
Document root is /path/to/your/app

12

我知道的最简单的方法是:

cd /path/to/web-data
python3 -m http.server

该命令的输出将告诉您正在侦听哪个端口(我认为默认值为8000)。运行python3 -m http.server --help以查看可用的选项。

欲获得更多信息:

  1. 上的Python文档 http.server
  2. 简单的HTTP服务器(这也提到了python2语法)

天才!谢谢@muru!由于某些原因,我的端口8000正在使用(我不知道为什么),但是我只是运行python3 -m http.server 4000然后localhost:4000在Firefox和BAM中导航到!-我的网站已准备好进行测试!谢谢!
etsnyman 2014年

2

您想要的就是静态Web服务器。有很多方法可以实现这一目标。

它列出了静态Web服务器

一种简单的方法:将以下脚本另存为 static_server.js

   var http = require("http"),
     url = require("url"),
     path = require("path"),
     fs = require("fs")
     port = process.argv[2] || 8888;

 http.createServer(function(request, response) {

   var uri = url.parse(request.url).pathname
     , filename = path.join(process.cwd(), uri);

   path.exists(filename, function(exists) {
     if(!exists) {
       response.writeHead(404, {"Content-Type": "text/plain"});
       response.write("404 Not Found\n");
       response.end();
       return;
     }

     if (fs.statSync(filename).isDirectory()) filename += '/index.html';

     fs.readFile(filename, "binary", function(err, file) {
       if(err) {        
         response.writeHead(500, {"Content-Type": "text/plain"});
         response.write(err + "\n");
         response.end();
         return;
       }

       response.writeHead(200);
       response.write(file, "binary");
       response.end();
     });
   });
 }).listen(parseInt(port, 10));

 console.log("Static file server running at\n  => http://localhost:" + port + "/\nCTRL + C to shutdown");

将您index.html放在同一目录中并运行

 node static_server.js

+1为静态服务器列表。我必须说,该代码的缩进看起来奇怪。
muru 2014年

0

安装local-web-server,它将安装ws命令,您可以运行该命令以将任何目录用作静态站点。

该剪辑演示了静态托管以及两种日志输出格式- devstats

静态静态日志输出

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.