Chạy một máy chủ web từ bất kỳ thư mục


9

Tôi đang viết một trang web nhỏ, nhưng tôi KHÔNG muốn tìm ra cách cài đặt và cấu hình ngăn xếp LAMP hoàn chỉnh để kiểm tra trang web từ ~/homethư mục của tôi . Điều đó sẽ hoàn toàn gây rối và không cần thiết.

Tất cả những gì tôi muốn là có một thư mục, ví dụ ~/home/Documents/Websitevà chạy một máy chủ web nhỏ từ thư mục đó làm thư mục "nhà" của trang web.

Tôi biết Jekyll có thể làm một cái gì đó tương tự, nhưng nó dường như chỉ hoạt động với các trang web dựa trên Ruby / Jekyll mà nó xây dựng và định cấu hình.

Không có chương trình máy chủ web nhỏ nào mà tôi có thể dễ dàng cài đặt và sau đó chỉ chạy rất đơn giản?

Ví dụ, nếu tôi chỉ cần chạy một cái gì đó như ví dụ simple-server serve ~/home/Documents/Websitetừ một dòng lệnh và sau đó điều hướng đến ví dụ localhost:4000hoặc bất cứ điều gì để kiểm tra trang web, điều đó sẽ hoàn hảo.

Nếu điều này đã có sẵn trong Ubuntu và tôi không biết làm thế nào, xin vui lòng cho tôi biết.


Những loại tập tin nào bạn có php pythonhoặc đơn giản html?
Dan

@ dan08 Hiện tại, chỉ đơn giản htmlcss. Tôi có thể muốn thêm NodeJSvào trong tương lai, nhưng sau đó tôi sẽ có một thiết lập khác.
etsnyman

Vì vậy, bạn có thể chỉ cần mở những người trong trình duyệt web của bạn, không cần máy chủ.
Dan

Bạn có thể làm rõ câu hỏi của bạn? Việc phục vụ các tài liệu từ / var / www / html thực sự dễ dàng hơn rất nhiều từ thư mục chính của bạn. Dù bằng cách nào bạn cũng cài đặt Apache cùng với mysql, php hoặc bất cứ thứ gì bạn có thể cần. Để sử dụng / va / www / html chỉ cần sao chép các tệp. Việc cấu hình Apache để phục vụ các tệp từ thư mục chính của bạn là công việc nhiều hơn vì bạn phải kích hoạt các thư mục chính hoặc chỉnh sửa các tệp cấu hình apache. Ở cả hai vị trí, bạn vẫn phải có sẵn các thư mục / tệp cho dữ liệu www. Tôi không hiểu những gì bạn thấy khó khăn.
Panther

@ dan08 Có giới hạn làm tê liệt việc phục vụ từ một file://địa chỉ hơn là http://địa chỉ. Một số liên kết và đoạn mã Javascript nhỏ đơn giản là không hoạt động.
etsnyman

Câu trả lời:


10

Nếu bạn đã cài đặt php, bạn có thể sử dụng máy chủ tích hợp php để chạy các tệp html / css và / hoặc php:

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

Như đầu ra bạn sẽ nhận được:

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

12

Cách đơn giản nhất mà tôi biết là:

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

Đầu ra của lệnh sẽ cho bạn biết nó đang nghe cổng nào (mặc định là 8000, tôi nghĩ vậy). Chạy python3 -m http.server --helpđể xem những tùy chọn có sẵn.

Để biết thêm thông tin:

  1. Tài liệu Python về http.server
  2. Máy chủ HTTP đơn giản (điều này cũng đề cập đến python2cú pháp)

Thiên tài! Cảm ơn bạn, @muru! Vì một số lý do, cổng 8000 của tôi đang được sử dụng (tôi không thể hiểu tại sao) nhưng tôi chỉ chạy python3 -m http.server 4000và sau đó được điều hướng localhost:4000trong Firefox và BAM! - trang web của tôi đã sẵn sàng để được thử nghiệm! Cảm ơn bạn!
etsnyman

2

Những gì bạn muốn được gọi là máy chủ web tĩnh . Có nhiều cách để đạt được điều đó.

Nó được liệt kê các máy chủ web tĩnh

Một cách đơn giản: lưu tập lệnh bên dưới dưới dạng 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");

đặt của bạn index.htmltrong cùng một thư mục và chạy

 node static_server.js

+1 cho danh sách các máy chủ tĩnh. Tôi phải nói rằng, vết lõm của mã đó trông rất kỳ quặc.
muru

0

Cài đặt local-web-server , nó cài đặt wslệnh mà bạn có thể chạy để phục vụ bất kỳ thư mục nào dưới dạng trang tĩnh.

Clip này cho thấy lưu trữ tĩnh cộng với một vài định dạng đầu ra nhật ký - devstats.

Đầu ra nhật ký tĩnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.