Apache2 + mod_pythonでDjangoアプリを動かす
DjangoアプリをLinuxサーバ上で動かすテストを行う。これまでなんとかMacサーバでは動かすことができたので、今度はLinuxでの設定手順を確認する。
環境
- ディストリビューションは、CentOS 5.4
- pythonはバージョン2.4.3
- OSのインストール時にApacheやmod_pythonはインストール済み
Djangoのインストール
yumで探しても見つからず。ソースをダウンロードする。
Django-1.2.4.tar.gzを持ってきて、setup.py installとする。/usr/lib/python2.4/site-packages/django/にインストールされた。
httpd.confファイルに追記
/etc/httpd/conf/httpd.confファイルに、mod_pythonを使うための設定を追記。
... LoadModule python_module modules/mod_python.so ... <Location "/test/"> SetHandler python-program PythonHandler django.core.handlers.modpython PythonOption django.root /test PythonPath "['/home/hoge/Django', '/home/hoge/Django/myproj', '/home/hoge/Django/myproj/myapp', '/usr/lib/python2.4/site-packages/'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE myproj.settings PythonDebug On </Location>
Apacheの起動
CentOSで自宅サーバー構築を参考に。rootで、
# /etc/rc.d/init.d/httpd start
を実行すると起動する。以下のメッセージが表示される。
httpd を起動中: [Tue Jan 18 16:15:08 2011] [warn] module python_module is already loaded, skipping
mod_pythonのLoadModule設定は必要なかったかな?warningなのでこのままで。ブラウザで接続してみると、Apache2のテストページが表示される。次に、http://(ホスト名)/test/に接続してみる。すると、
Mod_python error: ... ImportError: Could not import settings 'myapp.settings'
となる。settings.pyファイルが読めていない。permissionの問題はないように、既にchmodしてある。置き場所が問題か?