はじめに
手元で簡易的な HTTP サーバを立てたいときによく Python を使います。なのでその方法をまとめておきます。
http.server
Python で簡単に HTTP サーバを立てるには、標準ライブラリの http.server を使います。
公式の警告にもあるように、実運用向けのライブラリではないので、あくまで手元の確認用程度のものという認識で。
実行
もちろん http.server を使って Python のコードを書き、実行すればサーバを立てられるのですが、それでは少し面倒です。
ここでは Python のモジュールモードを使用して、コマンドでサーバを立ち上げましょう。
モジュールモードで起動するには Python の実行オプションとして -m
を付与し、使用するモジュール http.server
を指定します。
つまり、実行コマンドは以下のようになります。
$ python -m http.server
デフォルトでは外部アクセス許可( 0.0.0.0
)の 8000
番ポートで立ち上がります。
アドレスとポートの変更
このコマンドのヘルプを確認してみます。
$ python -m http.server -h
usage: server.py [-h] [--cgi] [--bind ADDRESS] [--directory DIRECTORY] [port]
positional arguments:
port Specify alternate port [default: 8000]
optional arguments:
-h, --help show this help message and exit
--cgi Run as CGI Server
--bind ADDRESS, -b ADDRESS
Specify alternate bind address [default: all
interfaces]
--directory DIRECTORY, -d DIRECTORY
Specify alternative directory [default:current
directory]
ここにあるように --bind
でアドレスを指定すると、外部アクセスを許可せず、完全ローカルで立ち上げたり、ポート番号を指定したりすることができます。
例えば、ローカルで 12345
番ポートにしたい時は以下のようなコマンドになります。
$ python -m http.server --bind 127.0.0.1 12345
おわりに
CGI サーバとしても動かせるので、単純な静的サイト意外にも使い道はありそうですね。