開発用にローカルサーバを構築する手軽な方法(Python編)

開発用にローカルサーバをPythonで構築する手軽な方法です。

Python 2.7.16
Python 3.8.2

はじめに

アプリ開発をしていると、リモートサーバを立てるほどじゃないけどネットワークを介した開発を行いたい時があります。
本記事ではそのような時にPythonでお手軽にローカルサーバを構築する方法を紹介します。

下準備として、HTTPサーバのドキュメントルートとしたいフォルダを作っておきます。
またファイルが何もないのもアレなので、index.htmlを適当に書いておいておきます。

<!DOCTYPE html>

<html lang="ja">
<head>
<meta charset="utf-8">
<title>
Local Host Example
</title>
</head>

<body>
<p>
Hello World.
</p>
</body>
</html>

またPythonをインストールしていない場合には下記を参考にインストールしておきます。

light11.hatenadiary.com

HTTPサーバを立てる

それではローカルサーバを立てていきます。
まずドキュメントルートとしたいフォルダをカレントディレクトリにしておきます。

次にPython3の場合はコマンドラインからhttp.serverを使います。

$ py -m http.server 8000 ※Windowsの場合
$ python3 -m http.server 8000 ※Macの場合

8000は任意のポート番号です。省略すると8000が割り振られます。

またPython2の場合はコマンドラインからSimpleHTTPServerを使います。

$ py -m SimpleHTTPServer 8000 ※Windowsの場合
$ python -m SimpleHTTPServer 8000 ※Macの場合

これだけでローカルサーバの構築ができました。
ブラウザからhttp://localhost:8000/にアクセスするとindex.htmlが表示されることが確認できます。

f:id:halya_11:20200422111338p:plain:w600
localhost:8000にアクセス

またサーバの終了はCtrl + Cを行います。

同じネットワーク上の端末からアクセスする

さてプライベートIPアドレスを使えば、同じネットワーク上の端末からサーバにアクセスすることができます。
そこで機器のプライベートIPアドレスを調べていきます。

手元の有線につないだWindows10では、コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > イーサネット > 詳細から確認できました。

またmacではシステム環境設定 > ネットワーク > 詳細 > TCP/IPから確認できました。

f:id:halya_11:20200422112207p:plain:w600
macでプライベートIPアドレスを確認

あとはサーバを立てた状態で、同じネットワークにつないだ端末から192.168.0.14:8000のようにアクセスするだけです。
以下のように正常にindex.htmlが表示されることを確認できました。

f:id:halya_11:20200422112506p:plain:w300
index.htmlが表示

なおサーバにしたPCのファイアーウォールが有効になっていると接続できない場合がありますのでご注意ください。
その場合には一時的にファイアーウォールを無効にすることで接続確認ができます。

関連

light11.hatenadiary.com