เรียกใช้เว็บเซิร์ฟเวอร์จากไดเรกทอรีใด ๆ


9

ฉันกำลังเขียนเว็บไซต์ขนาดเล็ก แต่ฉันไม่ต้องการทราบวิธีการติดตั้งและกำหนดค่า LAMP stack ที่สมบูรณ์เพื่อทดสอบเว็บไซต์จาก~/homeไดเรกทอรีของฉัน นั่นจะก่อกวนอย่างสมบูรณ์และไม่จำเป็น

สิ่งที่ฉันต้องการคือมีไดเรกทอรีเช่น~/home/Documents/Websiteและเรียกใช้เว็บเซิร์ฟเวอร์ขนาดเล็กจากโฟลเดอร์นั้นเป็นโฟลเดอร์ "บ้าน" ของเว็บไซต์

ฉันรู้ว่าJekyllสามารถทำสิ่งที่คล้ายกันได้ แต่ดูเหมือนว่าจะทำงานกับไซต์ที่ใช้ Ruby / Jekyll เท่านั้นที่สร้างและกำหนดค่า

มีโปรแกรมเว็บเซิร์ฟเวอร์ขนาดเล็กที่ฉันสามารถติดตั้งได้อย่างง่ายดายและจากนั้นก็รันได้ง่ายมาก?

ตัวอย่างเช่นถ้าฉันต้องการเรียกใช้บางสิ่งบางอย่างเช่นsimple-server serve ~/home/Documents/Websiteจากบรรทัดคำสั่งจากนั้นไปที่เช่นlocalhost:4000หรือเพื่อทดสอบไซต์นั่นจะสมบูรณ์แบบ

หากสิ่งนี้เป็นไปได้แล้วใน Ubuntu และฉันไม่รู้วิธีโปรดแจ้งให้เราทราบ


คุณมีไฟล์ประเภทใดphp pythonหรือธรรมดาhtml?
ด่าน

@ dan08 ในขณะที่เพียงแค่ธรรมดาและhtml cssฉันอาจต้องการที่จะเพิ่มNodeJSในอนาคต แต่จากนั้นฉันจะมีการตั้งค่าที่แตกต่างกัน
etsnyman

ดังนั้นคุณสามารถเปิดได้ในเว็บเบราว์เซอร์ของคุณไม่จำเป็นต้องใช้เซิร์ฟเวอร์
ด่าน

คุณช่วยชี้แจงคำถามของคุณได้ไหม? มันง่ายกว่ามากที่จะให้บริการเอกสารจาก / var / www / html แล้วมันมาจากโฮมไดเร็กตอรี่ของคุณ ไม่ว่าคุณจะติดตั้ง Apache พร้อมกับ mysql, php หรืออะไรก็ตามที่คุณต้องการ หากต้องการใช้ / va / www / html เพียงแค่คัดลอกไฟล์ การกำหนดค่า Apache ให้บริการไฟล์จากโฮมไดเร็กตอรี่ของคุณเป็นเรื่องที่มากกว่าที่คุณจะต้องเปิดใช้งานโฮมไดเร็กตอรี่หรือแก้ไขไฟล์การตั้งค่า apache. ในทั้งสองตำแหน่งคุณยังต้องมีไดเรกทอรี / ไฟล์สำหรับ www-data ฉันไม่เข้าใจสิ่งที่คุณพบว่าเป็นเรื่องยาก
Panther

@ dan08 มีข้อ จำกัด ที่ทำให้หมดอำนาจในการให้บริการจากที่file://อยู่มากกว่าที่http://อยู่ ลิงก์และตัวอย่างข้อมูล Javascript ขนาดเล็กนั้นใช้งานไม่ได้
etsnyman

คำตอบ:


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ไวยากรณ์)

Genius! ขอบคุณ @muru! ด้วยเหตุผลบางอย่างพอร์ตของฉันใช้งานอยู่ 8000 (ฉันไม่สามารถหาสาเหตุได้) แต่ฉันเพิ่งวิ่งpython3 -m http.server 4000แล้วไปที่localhost:4000Firefox และ BAM! - เว็บไซต์ของฉันพร้อมที่จะทดสอบ! ขอบคุณ!
etsnyman

2

สิ่งที่คุณต้องการคือที่เรียกว่าเว็บเซิร์ฟเวอร์แบบคงที่ มีหลายวิธีที่จะทำให้สำเร็จ

มันแสดงรายการเว็บเซิร์ฟเวอร์คงที่

วิธีง่ายๆง่ายๆ: บันทึกสคริปต์ด้านล่างเป็น 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

0

ติดตั้งบนเว็บเซิร์ฟเวอร์มันจะติดตั้งwsคำสั่งที่คุณสามารถเรียกใช้เพื่อให้บริการไดเรกทอรีใด ๆ เป็นเว็บไซต์คงที่

คลิปนี้แสดงให้เห็นถึงโฮสติ้งคงบวกคู่ของรูปแบบบันทึกการส่งออก - และdevstats

เอาต์พุตบันทึกสถิต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.