PythonスクリプトをIIS(Internet Information Services)で実行できるよう設定する

PythonスクリプトをIIS(Internet Information Services)で実行できるよう設定する手順を紹介します。

事前準備

Python for Windows をインストールします。インストール手順はこちらの記事を参照してください。
また、IISにFastCGI モジュールをインストールします。IISにFastCGI モジュールをインストールする手順の詳細については、こちらの記事を参照してください。

スクリプトマップの追加

[インターネット インフォメーション サービス(IIS)マネージャー]を起動します。下図のウィンドウが表示されます。


左側のツリービューからサーバーのノードをクリックして選択します。下図の画面の表示になります。右側の[機能ビュー]の[ハンドラー マッピング]をダブルクリックします。


[ハンドラー マッピング]の画面が表示されます。右側の[操作]ウィンドウの[スクリプト マップの追加]リンクをクリックします。


[スクリプト マップの追加]ダイアログが表示されます。


[要求パス]にPythonの拡張子 *.py を入力します。[実行可能ファイル]にPythonの実行ファイル "C:\Program Files\Python37\python.exe" %s %sを入力します。[名前]欄に識別するための名前を設定します。


[要求の制限]ボタンをクリックして設定を確認します。デフォルトのままの設定で問題ありません。~



設定ができたら[OK]ボタンをクリックします。下図の確認ダイアログが表示されます。[はい]ボタンをクリックしてスクリプトマップを追加します。


ハンドラーマッピングの画面に戻ります。マッピングに Python のスクリプトマッピングが追加されていることが確認できます。

MIME タイプの追加

MIMEタイプを追加します。[インターネット インフォメーション サービス(IIS)マネージャー]を起動します。下図のウィンドウが表示されます。左側のツリービューでサーバーのノードをクリックして選択します。右側の[機能ビュー]の[MIME の種類]の項目をダブルクリックします。


[MIME の種類]の画面が表示されます。右側の[操作]ウィンドウの[追加]リンクをクリックします。


[MIME の種類の追加]ダイアログが表示されます。


[ファイル名の拡張子]に .py を入力します。[MIME の種類]に application/x-python-code を入力します。入力後[OK]ボタンをクリックします。


[MIME の種類]画面に戻ります。 ".py" のMIMEが追加されていることが確認できます。

IISでの動作確認

IISのドキュメントルート以下のディレクトリにPythonのファイルを配置します。今回は test ディレクトリ内に index.py ファイルを配置しました。


下記のコードを記述します。
index.py
print ('Status: 200 OK')
print ('Content-type: text/html')
print ('')

print ('<HTML><HEAD><TITLE>Python Test</TITLE></HEAD>')
print ('<BODY>')
print ('<H1>Phyton Test</H1>')

print ('<p>' )
print ('Hello Phyton Web World!')
print ('<br>')
print ('</p>')
print ('</BODY></HTML>')


解説

下記コードでWebサーバーからのレスポンスコードを出力をします。
print ('Status: 200 OK')
print ('Content-type: text/html')
print ('')

下記コードでWebページのコードを出力をします。
print ('<HTML><HEAD><TITLE>Python Test</TITLE></HEAD>')
print ('<BODY>')
print ('<H1>Phyton Test</H1>')

print ('<p>' )
print ('Hello Phyton Web World!')
print ('<br>')
print ('</p>')
print ('</BODY></HTML>')

表示結果

WebブラウザでWebサイトのindex.py ファイルにアクセスします。設定ができていれば、Python のコードが実行され下図のページが表示されます。

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2017-10-13
iPentec all rights reserverd.