15 votes

Exécuter un serveur web à partir de n'importe quel répertoire

Je suis en train d'écrire un petit site web, mais je ne veux PAS savoir comment installer et configurer la pile LAMP complète pour tester le site web depuis mon ~/home répertoire. Cela sera complètement perturbant et inutile.

Tout ce que je veux, c'est avoir un répertoire, par ex. ~/home/Documents/Website et faire fonctionner un petit serveur web à partir de ce dossier comme dossier "d'accueil" du site web.

Je sais. Jekyll peut faire quelque chose de similaire, mais il ne semble fonctionner qu'avec les sites basés sur Ruby/Jekyll qu'il construit et configure.

N'existe-t-il pas un petit programme de serveur web que je peux facilement installer et exécuter très simplement ?

Par exemple, si j'avais juste besoin d'exécuter quelque chose comme par ex. simple-server serve ~/home/Documents/Website à partir d'une ligne de commande, puis naviguez vers, par exemple, le site suivant localhost:4000 ou autre pour tester le site, ce serait parfait.

Si cela est déjà possible dans Ubuntu et que je ne sais pas comment faire, faites-le moi savoir.

21voto

muru Points 180007

La méthode la plus simple que je connaisse est la suivante :

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

La sortie de la commande vous indiquera le port sur lequel il écoute (par défaut 8000, je crois). Exécutez python3 -m http.server --help pour voir quelles sont les options disponibles.

Pour plus d'informations :

  1. Documentation Python sur http.server
  2. Serveur HTTP simple (ceci mentionne également le python2 syntaxe)

14voto

storm Points 4853

Si vous avez installé php, vous pouvez utiliser le serveur intégré de php pour exécuter des fichiers html/css et/ou php :

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

Comme résultat, vous obtiendrez :

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

2voto

kenn Points 4701

Ce que vous voulez s'appelle serveur web statique . Il existe de nombreuses façons d'y parvenir.

Il est répertorié serveurs web statiques

Un moyen simple : enregistrer le script ci-dessous en tant que 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");

mettez votre index.html dans le même répertoire et exécutez

 node static_server.js

1voto

Sergio Cabral Points 111

Utilisez busybox. Par exemple avec Debian.

apt install busybox
mkdir ~/www
busybox httpd -p 80 -h ~/www

0voto

Lloyd Points 101

Installer serveur-web local il installe le ws que vous pouvez exécuter pour servir n'importe quel répertoire comme site statique.

Ce clip présente l'hébergement statique ainsi que plusieurs formats de sortie de journal. dev y stats .

Static static log output

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X