任意のディレクトリからWebサーバーを実行する


9

小さなWebサイトを作成していますが、完全なLAMPスタックをインストールして構成し、~/homeディレクトリからWebサイトをテストする方法を知りたくありません。それは完全に破壊的で不要です。

私が望んでいるのは、ディレクトリを作成することだけです。たとえば~/home/Documents/Website、そのフォルダーから小さなWebサーバーをWebサイトの「ホーム」フォルダーとして実行します。

私はJekyllが同様のことを行うことができることを知っていますが、それが構築して構成するRuby / Jekyllベースのサイトでしか機能しないようです。

簡単にインストールして簡単に実行できる小さなWebサーバープログラムはありませんか?

たとえばsimple-server serve ~/home/Documents/Website、コマンドラインなどから何かを実行して、eg などに移動しlocalhost:4000てサイトをテストする必要がある場合は、それで十分です。

これがUbuntuですでに可能であり、方法がわからない場合は、私に知らせてください。


どんな種類のファイルを持っていますphp pythonか、それとも単純htmlですか?
Dan

@ dan08現時点では、単純なhtmlとだけですcssNodeJS将来的には追加したいと思うかもしれませんが、その場合は別のセットアップになります。
etsnyman 2014

したがって、サーバーを必要とせずに、それらをWebブラウザーで単に開くことができます。
Dan

質問を明確にできますか?/ var / www / htmlからドキュメントを提供する方が、ホームディレクトリから提供するよりもはるかに簡単です。どちらの方法でも、mysql、php、またはその他必要なものと一緒にApacheをインストールします。/ va / www / htmlを使用するには、ファイルをコピーするだけです。ホームディレクトリを有効にするか、Apache構成ファイルを編集する必要があるため、Apacheを構成してホームディレクトリからファイルを提供するのはより手間がかかります。どちらの場所でも、www-dataで利用できるディレクトリ/ファイルが必要です。何が難しいと思うかわかりません。
パンサー

@ dan08 file://アドレスではなくアドレスからサービスを提供することには、重大な制限がありhttp://ます。一部のリンクと小さなJavaScriptスニペットは単に機能しません。
etsnyman 2014

回答:


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​​が使用されています(理由はわかりません)が、FirefoxとBAMで実行python3 -m http.server 4000してからナビゲートしlocalhost:4000ただけです。-私のウェブサイトはテストする準備ができています!ありがとうございました!
etsnyman 2014

2

必要なものは静的Webサーバーと呼ばれます。それを達成するには多くの方法があります。

静的Webサーバーのリストです

簡単な方法の1つ:以下のスクリプトを 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 2014

0

インストールローカルWebサーバ、それがインストールされwsますが、静的なサイトとして任意のディレクトリサービスを提供するために実行できるコマンドを。

このクリップは、静的なホスティングプラスログ出力フォーマットのカップルを実証- devstats

静的静的ログ出力

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.