簡易Webサーバーの作成(CGIHTTPServer)

Python の基礎もあまり出来ていませんが、CGIHTTPServer なるものを利用してとりあえず動くものを作成してみようかと思います。
SimpleHTTPServer というものもありますが、CGIHTTPServer は CGI も動くということなのでこちらをを使用します。

サーバースクリプトの作成

サーバーとしての機能を提供する為のスクリプトを作成します。

import CGIHTTPServer
CGIHTTPServer.test()

これだけです。簡単ですね。上記のコードだけで Web サーバーとしての動作をひと通りしてくれます。
ちなみにスクリプトを作成しなくても以下のコマンドを実行するだけで動作してくれます。

python -m CGIHTTPServer

CGIHTTPServer は、実行した時のカレントディレクトリをドキュメントルートとして、ポートは 8000 を、HOST に 0.0.0.0(localhost, 127.0.0.1 ?) として動作するようです。

この時点で http://localhost:8000/ にアクセスすると実行したディレクトリのリストが表示されます。
CGIHTTPServer_01

index.html の設置

実行したディレクトリに index.html を作成して設置します。


<html>
<head>
    <meta charset="utf-8">
    <title>CGIHTTPServer</title>
</head>
<body>
    <h1>CGIHTTPServer のテスト</h1>
</body>

この状態で再び http://localhost:8000/ にアクセスすると以下の状態になり index.html が綺麗に表示出来ているのが確認出来ると思います。
CGIHTTPServer_02

CGIの作成

静的な html ファイルの表示ができたので CGI のスクリプトを作成してみます。

CGIHTTPServer は /cgi-bin ディレクトリ以下にあるファイルを CGI として実行する設定のようなので初めに cgi-bin ディレクトリを作成します。
そしてその中に simplecgi.py というファイルを作成します。

#!/usr/bin/env python

print 'Content-type: text/html\n'
print 'Simple Python CGI.'

そして http://localhost:8000/cgi-bin/simplecgi.py にアクセスすると Simple Python CGI. が表示されると思います。
CGIHTTPServer_03

これで CGI を作成することが出来ました。後は必要な処理を Python のスクリプトで書いていくことが出来ます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です