Executa um servidor web a partir de qualquer diretório

6

Estou escrevendo um site pequeno, mas NÃO quero descobrir como instalar e configurar uma pilha LAMP completa para testar o site a partir do meu diretório ~ / home. Isso será completamente perturbador e desnecessário.

Tudo que eu quero é ter um diretório, por exemplo ~ / home / Documents / Website e execute um pequeno servidor web a partir dessa pasta como a pasta "home" do site.

Eu sei que o Jekyll ( link ) pode fazer algo semelhante, mas parece funcionar apenas com sites baseados em Ruby / Jekyll que ele constrói e configura .

Não existe algum pequeno programa de servidor web que eu possa instalar facilmente e simplesmente rodar de forma simples?

Por exemplo, se eu precisasse executar algo como, por exemplo, simple-server serve ~/home/Documents/Website de uma linha de comando e, em seguida, navegue para, por exemplo, localhost:4000 ou qualquer outra coisa para testar o site, seria perfeito.

(Se isso já é possível no Ubuntu e eu não sei como, por favor me avise.)

EDIT: Parece que é muito mais fácil para os leitores ignorarem a minha pergunta e preocupações, para baixo minha pergunta, e então simplesmente me diga para fazer o oposto do que eu estou tentando alcançar. Isso não é construtivo.

    
por etsnyman 05.09.2014 / 21:21

3 respostas

9

Se você tiver o php instalado, você pode usar o servidor interno php para executar arquivos html / css e / ou php:

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

Como resultado você terá:

Listening on localhost:8000
Document root is /path/to/your/app
    
por storm 25.04.2016 / 10:00
9

A maneira mais simples que conheço é:

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

A saída do comando informará em qual porta ele está escutando (o padrão é 8000, eu acho). Execute python3 -m http.server --help para ver quais opções estão disponíveis.

Para mais informações:

  1. Documentação do Python sobre http.server
  2. Servidor HTTP simples (isso também menciona a sintaxe python2 )
por muru 05.09.2014 / 22:10
2

O que você deseja é chamado de servidor da web estático . Existem muitas maneiras de conseguir isso.

Estão listados servidores estáticos

Uma maneira simples: salve abaixo do script como 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");

coloque seu index.html no mesmo diretório e execute

 node static_server.js
    
por kenn 05.09.2014 / 22:31