DjangoをFastCGIで動かす
まずはflupを入れる。少し苦労した気がするのだがもうだいぶ時間が経ってしまったので忘れた。
FastCGIサーバーを動かすのは簡単。
FastCGIをExternalServerで動かすのは初めてだったのでなんか新鮮。
それよりmod_rewriteで苦戦。mod_rewriteにはいつもいつも苦労させられます。いまだによくわかってない。
で、書いてあった設定とちょっと違うのでメモっておく。
FastCGIExternalServer /var/django/mysite.fcgi -socket /var/django/mysite.sock <VirtualHost *:80> ServerAdmin takatoshi.ono@gmail.com DocumentRoot /var/django ServerName django.takatoshi.dyndns.org ErrorLog logs/django/error_log CustomLog logs/django/access_log common <Directory /var/django> Options -Indexes AllowOverride None Order allow,deny Allow from all </Directory> <Directory /usr/lib/python2.4/site-packages/Django-0.95.1-py2.4.egg/django/contrib/admin/media> Options -Indexes AllowOverride None Order allow,deny Allow from all </Directory> RewriteEngine On RewriteRule ^/media/(.*)$ /usr/lib/python2.4/site-packages/Django-0.95.1-py2.4.egg/django/contrib/admin/media/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L] </VirtualHost>
で、キモは/mediaをFastCGIにハンドルさせないようにするためのルールのとこです。
例だと
Alias /media /home/user/python/django/contrib/admin/media RewriteRule ^/(media.*)$ /$1 [QSA,L]
ってしてるんだけどこれだとうまくいかなかったので変えました。
これのせいですげー時間かかっちまいました。
ちなみにFastCGIはApacheの実行ユーザーで
$ python manage.py runfcgi socket=/var/django/mysite.sock pidfile=/var/django/mysite.pid
ってしておいた。
-
- -
http://ymasuda.jp/python/django/docs_0.95/fastcgi.html
http://www.djangoproject.com/documentation/fastcgi/