Not normal

普通の奴らの上を行け!斜め真ん中上の選択

Pythonで簡易CGIサーバーを建てる(IP指定)

みんなのPython Webアプリ編を元に簡易CGIサーバーを建てていたが
自分の環境は仮想マシン上でやっていたためlocalhostでは確認できない。
そのため、IPを指定する必要があった。以下にその方法を載せる。

簡易CGIサーバー

ファイル名はなんでも良いが他のモジュールと競合しないようにする。
私は「bl_pyserver.py」とした。

import BaseHTTPServer,CGIHTTPServer
import sys
 
def run(server_class=BaseHTTPServer.HTTPServer,
        handler_class=CGIHTTPServer.CGIHTTPRequestHandler,port=80):
    server_address = ('設定したいIPアドレス', int(port))
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()
 
if __name__ == '__main__':
    run(port=sys.argv[1])

実行する際は、スペースの後にポート番号を入力。

$ python bl_pyserver.py 5000

「htbin」フォルダ内でないとPythonファイルが動かない。

$ mkdir htbin

ファイル名は「hoge.py」で「htbin」内に保存。

#!/usr/bin/env python
import time
 
time.sleep(2)
print ''
print 'EVIL SCRIPT'

パーミッションも変更しておく。

$ chmod 755 htbin/hoge.py

気付き

どうやらソースファイルに

#!/usr/bin/env python

が必要らしい。環境によっては違うかもしれない。
あと、「cgi-bin」ばかりに気がいって「htbin」に気が付かなかった…。

それと、htmlがなんか出来てない?動いていない?忘れた。
もう諦めてFlask使ってやってるからいいもん。