从任意目录运行 Web 服务器

从任意目录运行 Web 服务器

我正在编写一个小网站,但我不想弄清楚如何安装和配置完整的 LAMP 堆栈来从我的~/home目录测试网站。那将完全破坏网站,而且没有必要。

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

我知道杰基尔可以做类似的事情,但它似乎只适用于它构建和配置的基于 Ruby/Jekyll 的站点。

是否不存在一些我可以轻松安装然后简单运行的小型网络服务器程序?

例如,如果我只需要simple-server serve ~/home/Documents/Website从命令行运行类似 eg 的程序,然后导航到 eglocalhost:4000或其他任何程序来测试站点,那就太完美了。

如果这在 Ubuntu 中已经可以实现,而我只是不知道如何实现,请告诉我。

答案1

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

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

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

了解更多信息:

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

答案2

如果您安装了 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

答案3

你想要的叫做静态 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

答案4

安装本地网络服务器,它会安装ws您可以运行的命令,以将任何目录作为静态站点提供服务。

此剪辑演示了静态托管以及一些日志输出格式 -devstats

静态静态日志输出

相关内容