Ubuntu DjangoでApacheを使うための設定メモ

2011/04/03

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
参考
Django v1.0
documentation – Apache と mod_python で Django を動かす

Django,Ubuntu

Posted by skw