ちょっと間が空いてしまいました。
転職活動してみたり、単純に仕事が忙しかったり、記事のためにいろいろ作業したりで、
投稿が一か月ぶりになってしまいました。時の流れが速いよ最近。<○_○>ほえー
さて今回はWSGIを設定します。
今までCGIとしてPythonを触ってきたのですが、
これからPythonのWebアプリケーションフレームワークを使ってゆく環境準備として
Apache + mod-WSGI の環境構築をします。
それでは本編です。
投稿が一か月ぶりになってしまいました。時の流れが速いよ最近。<○_○>ほえー
さて今回はWSGIを設定します。
今までCGIとしてPythonを触ってきたのですが、
これからPythonのWebアプリケーションフレームワークを使ってゆく環境準備として
Apache + mod-WSGI の環境構築をします。
それでは本編です。
目次
目標
Apache + mod-WSGI の環境構築を行いpythonを実行する
というかその前に
WSGIってなんだ?という話。
これについては、
gihyo.jpさんの WSGIとPythonでスマートなWebアプリケーション開発をや
Webアプリケーションフレームワークの作り方 in Pythonさんの WSGI についてで詳しく書いてある。
ありがとうございます。
とりあえず、
「PEP3333で定義されたPythonアプリケーションを動作させるWebサーバーのインタフェース」と理解。
概念的で真に理解できたかは怪しいが、ここから先は実戦で学んでゆきたいところ。
これについては、
gihyo.jpさんの WSGIとPythonでスマートなWebアプリケーション開発をや
Webアプリケーションフレームワークの作り方 in Pythonさんの WSGI についてで詳しく書いてある。
ありがとうございます。
とりあえず、
「PEP3333で定義されたPythonアプリケーションを動作させるWebサーバーのインタフェース」と理解。
概念的で真に理解できたかは怪しいが、ここから先は実戦で学んでゆきたいところ。
設定
以下の手順で設定してみます。
/etc/httpd/modules/にmod_wsgi.soが追加されているはずです。
ファイルがあるか確認しておきましょう。
1行目がmod_wsgi.soモジュールの読み込みです。
先ほど確認したmod_wsgi.soのパスを書きます。
2行目がWSGIが実行するpythonアプリケーションの実行対象です。
pythonアプリケーションのパスを記述します。
/var/www/webapp/index.py を作ります。
/var/www/webapp/index.pyの中身は以下のようにしてみます。
以下のようなページが表示されるはずです。
うまくいったでしょうか?
パッケージのインストールをします。
yum install -y mod_wsgi.x86_64 |
状況確認
パッケージのインストールが終わると、/etc/httpd/modules/にmod_wsgi.soが追加されているはずです。
ファイルがあるか確認しておきましょう。
Apacheの設定ファイルを編集します。
/etc/httpd/conf/httpd.confに以下を追記します。1行目がmod_wsgi.soモジュールの読み込みです。
先ほど確認したmod_wsgi.soのパスを書きます。
2行目がWSGIが実行するpythonアプリケーションの実行対象です。
pythonアプリケーションのパスを記述します。
LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias / /var/www/webapp/index.py |
Pythonアプリケーションを作成します。
/etc/httpd/conf/httpd.conf で実行対象にした、/var/www/webapp/index.py を作ります。
mkdir /var/www/webapp nano /var/www/webapp/index.py |
/var/www/webapp/index.pyの中身は以下のようにしてみます。
#!/usr/bin/python # -*- coding:utf-8 -*- def application(environ,start_response): status = '200 OK' htmltext = ''' <html> <head> </head> <body> <h1>"hello world."</h1> mod_wsgiで呼び出されました。 </body> </html> ''' response_header = [('Content-type','text/html')] start_response(status,response_header) return htmltext |
動作テスト
ブラウザで「Http://xxx.xxx.xxx.xxx」にアクセスしてみましょう。以下のようなページが表示されるはずです。
うまくいったでしょうか?
終わりに
今回はApacheにmod_wsgiを導入してみました。
今回も調べ調べしながらの作業ですが、ここまでは問題なさそうです。
今度はPythonのWebアプリケーションフレームワークに移ります。
BottleやFlask,Django・・・まだ見ぬフレームワークの世界に突入です。
またがんばってやってみましょう。
参考になれば幸いです。
実行は自己責任で!
以上
今回も調べ調べしながらの作業ですが、ここまでは問題なさそうです。
今度はPythonのWebアプリケーションフレームワークに移ります。
BottleやFlask,Django・・・まだ見ぬフレームワークの世界に突入です。
またがんばってやってみましょう。
参考になれば幸いです。
実行は自己責任で!
以上
0 件のコメント:
コメントを投稿