Ubuntu DjangoでApacheを使うための設定メモ
UbuntuのApacheの設定は、CentOSと違うのでえらく戸惑ってしまった。ネットで公開されているものを参考にやってみたのでメモしておく。Ubuntuのバージョンは 9.10
これから作るコンフィグの条件
- mod_pythonを使う
- http://HOST_IP_ADDRESS/dj をアクセスしたとき、Djangoが応答する
- Djangoプロジェクトは /home/skw/prog/pydj の配下にある
- Djangoアプリケーションは /home/skw/prog/pydj/djtest の配下にある
- Djangoプロジェクトは djtest
- Djangoアプリケーションのスタティックファイルは /home/skw/prog/pydj/djtest/djtest_static/ に
ある - Django自動管理インタフェースのスタティックファイルは
/usr/lib/pymodules/python2.6/django/contrib/admin/media/ にある
コンフィグファイルを編集する
コンフィグは /etc/apache2/sites-available/mysite として新しく作る。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/mysite <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/mysite> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Location "/dj/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE djtest.settings PythonOption django.root /dj PythonDebug On PythonPath "['/home/skw/prog/pydj','/home/skw/prog/pydj/djtest'] + sys.path" </Location> Alias /djtest_static/ /home/skw/prog/pydj/djtest/djtest_static/ Alias /admin_media/ /usr/lib/pymodules/python2.6/django/contrib/admin/media/ ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost>
defaultを無効にする
# a2dissite default
mysiteを有効にする
# a2ensite mysite
apacheの再起動
# /etc/init.d/apache2 restart
documentation – Apache と mod_python で Django を動かす