Jalankan server web dari direktori mana pun

9

Saya menulis situs web kecil, tetapi saya TIDAK ingin mengetahui cara menginstal dan mengkonfigurasi tumpukan LAMP lengkap untuk menguji situs web dari ~/homedirektori saya . Itu akan benar-benar mengganggu dan tidak perlu.

Yang saya inginkan adalah memiliki direktori, mis. ~/home/Documents/WebsiteDan menjalankan server web kecil dari folder itu sebagai folder "home" situs web.

Saya tahu Jekyll dapat melakukan sesuatu yang serupa, tetapi sepertinya hanya berfungsi dengan situs berbasis Ruby / Jekyll yang dibangun dan dikonfigurasinya.

Bukankah ada beberapa program server web kecil yang dapat saya instal dengan mudah dan kemudian jalankan dengan sangat sederhana?

Misalnya, jika saya hanya perlu menjalankan sesuatu seperti misalnya simple-server serve ~/home/Documents/Websitedari baris perintah dan kemudian menavigasi ke misalnya localhost:4000atau apa pun untuk menguji situs, itu akan menjadi sempurna.

Jika ini sudah memungkinkan di Ubuntu dan saya tidak tahu caranya, beri tahu saya.

etsnyman
sumber
Apa jenis file yang Anda miliki php pythonatau polos html?
Dan
@ dan08 Saat ini, hanya polos htmldan css. Saya mungkin ingin menambahkan NodeJSdi masa depan, tetapi kemudian saya akan memiliki pengaturan yang berbeda.
etsnyman
Jadi Anda dapat dengan mudah membukanya di browser web Anda, tidak perlu server.
Dan
Bisakah Anda mengklarifikasi pertanyaan Anda? Jauh lebih mudah untuk menyajikan dokumen dari / var / www / html daripada dari direktori home Anda. Apa pun cara Anda menginstal Apache bersama dengan mysql, php, atau apa pun yang Anda butuhkan. Untuk menggunakan / va / www / html cukup salin file. Lebih banyak pekerjaan untuk mengkonfigurasi Apache untuk melayani file dari direktori home Anda karena Anda harus mengaktifkan direktori home atau mengedit file konfigurasi apache. Di kedua lokasi Anda masih harus memiliki direktori / file yang tersedia untuk www-data. Saya tidak mengerti apa yang Anda temukan sangat sulit.
Panther
@ dan08 Ada batasan yang melumpuhkan untuk melayani dari file://alamat daripada http://alamat. Beberapa tautan dan cuplikan Javascript kecil tidak berfungsi.
etsnyman

Jawaban:

10

Jika Anda telah menginstal php, Anda dapat menggunakan server built-in php untuk menjalankan file html / css dan / atau php:

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

Sebagai output Anda akan mendapatkan:

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

Cara paling sederhana yang saya tahu adalah:

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

Output perintah akan memberi tahu Anda port mana yang didengarkan (defaultnya adalah 8000, saya pikir). Jalankan python3 -m http.server --helpuntuk melihat opsi apa yang tersedia.

Untuk informasi lebih lanjut:

  1. Dokumentasi Python aktif http.server
  2. Server HTTP sederhana (ini juga menyebutkan python2sintaks)
muru
sumber
Jenius! Terima kasih, @muru! Untuk beberapa alasan, port 8000 saya digunakan (saya tidak tahu mengapa), tetapi saya hanya berlari python3 -m http.server 4000dan kemudian menavigasi ke localhost:4000dalam Firefox, dan BAM! - Situs web saya siap diuji! Terima kasih!
etsnyman
2

Apa yang Anda inginkan disebut server web statis . Ada banyak cara untuk mencapainya.

Terdaftar server web statis

Satu cara sederhana: simpan skrip di bawah ini sebagai 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");

letakkan index.htmldi direktori yang sama dan jalankan

 node static_server.js
kenn
sumber
+1 untuk daftar server statis. Saya harus mengatakan, lekukan kode itu terlihat sangat aneh.
muru
0

Instal lokal-web-server , itu menginstal wsperintah yang dapat Anda jalankan untuk melayani direktori apapun sebagai situs statis.

Klip ini menunjukkan hosting statis ditambah beberapa format output log - devdan stats.

Output log statis statis

Lloyd
sumber