Pythonの http.server (またはPython 2の場合はSimpleHTTPServer)は、コマンドラインから現在のディレクトリの内容を提供する優れた方法です。
python -m http.server
しかし、Webサーバーに関する限り、それは非常に遅すぎます...
シングルスレッドのように動作し、RequireJSを使用してJavaScript AMDモジュールをロードするとタイムアウトエラーが発生することがあります。画像のない単純なページを読み込むのに5〜10秒かかることがあります。
同じくらい便利なより速い代替手段は何ですか?
http-server node.jsは非常に便利で、PythonのSimpleHTTPServerよりはるかに高速です。これは主に、リクエストを直列化するのではなく、リクエストの同時処理に非同期のIOを使用するためです。
まだインストールしていない場合は、node.jsをインストールしてください。次に、ノードパッケージマネージャ(npm
)を使用してパッケージをインストールし、-g
オプションを使用してグローバルにインストールします。 Windowsを使用している場合は、管理者権限のあるプロンプトが必要です。Linux/ OSXを使用している場合は、次のコマンドをSudo
にする必要があります。
npm install http-server -g
これは必要な依存関係をダウンロードしてhttp-server
をインストールします。
今、任意のディレクトリから、あなたは入力することができます:
http-server [path] [options]
Pathはオプションで、存在する場合は./public
にデフォルト設定されます。それ以外の場合は./
です。
オプションは[defaults]です。
-p
待機するポート番号[8080]-a
[localhost]にバインドするホストアドレス-i
ディレクトリインデックスページを表示する[True]-s
または--silent
サイレントモードではコンソールに記録されません-h
または--help
ヘルプメッセージを表示して終了するそのため、現在のディレクトリをポート8000で提供するには、次のように入力します。
http-server -p 8000
私はお勧め:ツイスト( http://twistedmatrix.com )
pythonで書かれ、オープンソースMITライセンスの下でライセンスされているイベント駆動型ネットワーキングエンジン。
クロスプラットフォームで、OS X 10.5から10.12にプレインストールされています。他のものの中で、あなたは現在のディレクトリで簡単なウェブサーバを起動することができます:
twistd -no web --path=.
オプションの説明(詳細はtwistd --help
を参照):
-n, --nodaemon don't daemonize, don't use default umask of 0077
-o, --no_save do not save state on shutdown
"web"は、Twisted非同期エンジンの上で単純なWebサーバーを実行するコマンドです。これはコマンドラインオプションも受け付けます( "web"コマンドの後 - 詳細はtwistd web --help
を参照)。
--path= <path> is either a specific file or a directory to be
set as the root of the web server. Use this if you
have a directory full of HTML, cgi, php3, epy, or rpy
files or any other files that you want to be served up
raw.
以下のような他のコマンドもたくさんあります。
conch A Conch SSH service.
dns A domain name server.
ftp An FTP server.
inetd An inetd(8) replacement.
mail An email service
... etc
ウブンツ
Sudo apt-get install python-twisted-web (or python-twisted for the full engine)
Mac OS-X(10.5 - 10.12にプレインストールされている、またはMacPortsでそしてPipを通して利用可能である)
Sudo port install py-twisted
Windows
installer available for download at http://twistedmatrix.com/
Twistedはセキュリティ証明書を利用して接続を暗号化することもできます。これを既存の--path
および--port
(プレーンHTTP用)オプションと共に使用します。
twistd -no web -c cert.pem -k privkey.pem --https=4433
go 1.0には数行のコードで http server & ファイルを提供するためのutil が含まれます。
package main
import (
"fmt"; "log"; "net/http"
)
func main() {
fmt.Println("Serving files in the current directory on port 8080")
http.Handle("/", http.FileServer(http.Dir(".")))
err := http.ListenAndServe(":8080", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
go run myserver.go
を使用してこのソースを実行するか、実行可能ファイルgo build myserver.go
を構築します。
webfs を試してください。これは小さいので、node.jsやpythonなどのプラットフォームをインストールすることには依存しません。
Mercurialを使っているなら、内蔵のHTTPサーバを使うことができます。あなたが提供したいフォルダの中で:
hg serve
から ドキュメント :
export the repository via HTTP
Start a local HTTP repository browser and pull server.
By default, the server logs accesses to stdout and errors to
stderr. Use the "-A" and "-E" options to log to files.
options:
-A --accesslog name of access log file to write to
-d --daemon run server in background
--daemon-pipefds used internally by daemon mode
-E --errorlog name of error log file to write to
-p --port port to listen on (default: 8000)
-a --address address to listen on (default: all interfaces)
--prefix prefix path to serve from (default: server root)
-n --name name to show in web pages (default: working dir)
--webdir-conf name of the webdir config file (serve more than one repo)
--pid-file name of file to write process ID to
--stdio for remote clients
-t --templates web templates to use
--style template style to use
-6 --ipv6 use IPv6 in addition to IPv4
--certificate SSL certificate file
use "hg -v help serve" to show global options
インストールしたら、Chromeで新しいタブを作成し、左上近くのアプリボタンをクリックして実行できます。
それは簡単なGUIを持っています。フォルダの選択をクリックしてから、http://127.0.0.1:8887
リンクをクリックします。
私はpython -m http.server
が信頼できないことを見つけました - いくつかの応答は数秒かかるでしょう。
今私はRanと呼ばれるサーバーを使用しています https://github.com/m3ng9i/ran
Ran:Goで書かれた簡単な静的Webサーバ
polpettaを試してみる...
npm install -g polpetta
それならあなたはできます
polpetta〜/フォルダ
そしてあなたは行く準備ができています:-)
サーバーとしてServezを使用する
http://localhost:8080
に行くか、「ブラウザを起動」を選択してください。注:Web Server for Chromeは Chromeはアプリのサポートを廃止しています 以降廃止されたため、またコマンドラインの経験がまったくない芸術生をサポートしているため、これを一緒に投げました。
私は live-server が好きです。それは速く、開発中に非常に便利であるニースライブリロード機能を持っています。
使い方はとても簡単です。
cd ~/Sites/
live-server
デフォルトでは、IP 127.0.0.1、ポート8080のサーバーを作成します。
ポート8080が空いていない場合は、別のポートを使用します。
ローカルネットワークの他のマシンにあるWebサーバーを見る必要がある場合は、自分のIPアドレスを確認して次のように使用します。
live-server --Host=192.168.1.121
そして、これがデフォルトのインターフェースのIPアドレスを自動的に取得するスクリプトです。 これはmacOSでのみ動作します。
.bash_profile
に入れると、live-server
コマンドは正しいIPで自動的にサーバーを起動します。
# **
# Get IP address of default interface
# *
function getIPofDefaultInterface()
{
local __resultvar=$1
# Get default route interface
if=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')
if [ -n "$if" ]; then
# Get IP of the default route interface
local __IP=$( ipconfig getifaddr $if )
eval $__resultvar="'$__IP'"
else
# Echo "No default route found"
eval $__resultvar="'0.0.0.0'"
fi
}
alias getIP='getIPofDefaultInterface IP; echo $IP'
# **
# live-server
# https://www.npmjs.com/package/live-server
# *
alias live-server='getIPofDefaultInterface IP && live-server --Host=$IP'