Запустіть веб-сервер із будь-якого каталогу


9

Я пишу невеликий веб-сайт, але НЕ хочу зрозуміти, як встановити та налаштувати повний стек LAMP для тестування веб-сайту з мого ~/homeкаталогу. Це буде абсолютно руйнівним і непотрібним.

Я хочу лише мати каталог, наприклад, ~/home/Documents/Websiteзапустити невеликий веб-сервер із цієї папки як домашню папку веб-сайту.

Я знаю, що Джекілл може зробити щось подібне, але це, здається, працює лише з сайтами на основі 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-даних. Я не розумію, що вам так важко.
Пантера

@ 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синтаксис)

Геніальний! Дякую, @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 для списку статичних серверів. Треба сказати, відступ цього коду виглядає дуже дивним.
муру

0

Встановіть локальний веб-сервер , він встановлює wsкоманду, яку можна запустити для обслуговування будь-якого каталогу як статичного сайту.

Цей кліп демонструє статичний хостинг плюс пару форматів виводу журналу - devі stats.

Статичний статичний вихід журналу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.