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 ファイルを配置しました。
下記のコードを記述します。
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やデータベースの記事なども担当。