Herhangi bir dizinden bir web sunucusu çalıştırın


9

Ben küçük bir web sitesi yazıyorum, ama nasıl kurmak ve dizinimden web sitesini test etmek için tam LAMP yığını nasıl yapılandırılacağını anlamak istemiyorum ~/home. Bu tamamen yıkıcı ve gereksiz olacak.

Tek istediğim, örneğin bir dizine sahip olmak ~/home/Documents/Websiteve bu klasörden web sitesinin "ev" klasörü olarak küçük bir web sunucusu çalıştırmak.

Jekyll'in benzer bir şey yapabileceğini biliyorum , ancak sadece Ruby / Jekyll tabanlı sitelerle çalıştığı ve yapılandırdığı görünüyor.

Kolayca yükleyebileceğim ve sonra sadece basitçe çalıştırabileceğim küçük bir web sunucusu programı yok mu?

Örneğin, örneğin simple-server serve ~/home/Documents/Websitebir komut satırından çalıştırmak ve örneğin localhost:4000siteyi test etmek için herhangi bir şeye gitmek gerekirse , bu mükemmel olurdu.

Ubuntu'da zaten bu mümkün ise ve nasıl olduğunu bilmiyorum, lütfen bana bildirin.


Ne tür bir dosyanız var php pythonya da düz html?
Dan

@ dan08 Şu anda, sade htmlve css. NodeJSGelecekte eklemek isteyebilirim , ancak daha sonra farklı bir kurulum yapacağım.
etsnyman

Böylece bunları web tarayıcınızda açabilirsiniz, sunucu gerekmez.
Dan

Sorunuzu açıklığa kavuşturabilir misiniz? / Var / www / html'den doküman sunmak gerçekten çok daha kolay, o zaman ana dizininizden. Her iki durumda da Apache'yi mysql, php veya başka herhangi bir şeye ihtiyacınız varsa kurabilirsiniz. / Va / www / html kullanmak için dosyaları kopyalamanız yeterlidir. Ana dizinleri etkinleştirmeniz veya apache yapılandırma dosyalarını düzenlemeniz gerektiğinden Apache'yi ana dizininizdeki dosyaları sunacak şekilde yapılandırmak daha fazla iştir. Her iki konumda da dizinlerin / dosyaların www-data için kullanılabilir olması gerekir. Ne kadar zor bulduğunu anlamıyorum.
Panther

@ dan08 file://Adres yerine bir adresten sunumda sakatlık sınırlamaları vardır http://. Bazı bağlantılar ve küçük Javascript snippet'leri çalışmaz.
etsnyman

Yanıtlar:


10

Eğer php yüklüyse html / css ve / veya php dosyalarını çalıştırmak için php yerleşik sunucusunu kullanabilirsiniz:

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

Çıktı olarak şunları elde edersiniz:

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

12

Bilmemin en basit yolu:

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

Komutun çıktısı hangi portu dinlediğini söyleyecektir (varsayılan 8000'dir, sanırım). python3 -m http.server --helpHangi seçeneklerin mevcut olduğunu görmek için çalıştırın .

Daha fazla bilgi için:

  1. Python belgeleri http.server
  2. Basit HTTP sunucusu (bu da python2sözdiziminden bahseder )

Genius! Teşekkürler, muru! Nedense, benim liman 8000 kullanılıyor (ben neden bilemiyorum) ama sadece koştum python3 -m http.server 4000ve sonra gittiğiniz localhost:4000Firefox ve BAM içinde! - web sitem test edilmeye hazır! Teşekkür ederim!
etsnyman

2

İstediğiniz statik web sunucusu olarak adlandırılır . Bunu başarmanın birçok yolu var.

Statik web sunucuları listeleniyor

Basit bir yol: komut dosyasının altına 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.htmlaynı dizine koyun ve çalıştırın

 node static_server.js

Statik sunucuların listesi için +1. Söylemeliyim ki, bu kodun girintisi çok garip görünüyor .
muru

0

Yerel web sunucusunu kurun , wsherhangi bir dizini statik site olarak sunmak için çalıştırabileceğiniz komutu yükler .

Bu klip statik barındırma ve birkaç günlük çıktı biçimi gösterir - devve stats.

Statik statik günlük çıkışı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.