まずはPythonをインストールしましょう.Djangoは、Pythonのバージョン2.5~2.7に対応しています.この時、sqlite3もビルド出来ているか確認します.zlibもyumで前もってインストールしておきましょう.
出来ていない場合は「./configure LDFLAGS='-L/path/to/lib' CPPFLAGS="-I/path/to/include'」あたりを考えてみましょう.(参考:「Building python 2.6 w/ sqlite3 module if sqlite is installed in non-standard location」「2.7.3: sqlite module does not build on centos 5 and Mac OS X 10.4」.結局「」を修正するはめに)
./configure --prefix='/opt/python2.7.3' LDFLAGS='-L/usr/lib' CPPFLAGS="-I/usr/include" CFLAGS="-I/usr/include"
また、Django起動時にhashlib関連のエラーが頻発しますので、hashlibをインストールしておきます(上記configureで出なくなります).
--enable-sharedも必要です.
次にDjangoをインストールします.ダウンロードしてきてインストールしたPythonでsetup.pyします.hashlibをインストールするときもこのようにインストールしたいPythonのバージョンで「setup.py」してください.
/opt/python2.7.3/bin/python2.7 setup.py build
(suして)/opt/python2.7.3/bin/python2.7 setup.py install
インストールできたらDjangoがimportできるか試してみます.
import django
プロジェクトを作成します.
/opt/python2.7.3/bin/python2.7 /opt/python2.7.3/lib/python2.7/site-packages/django/bin/django-admin.py startproject mysite1_4
パスを通すのがめんどくさいのでdjango-adminを絶対パスで指定します.
この後のアプリケーションの作成とかはこの「mysite1_4」フォルダの中に作成された「manage.py」でできますので、めんどくさいのはここだけです.
ここでエラーが無くプロジェクトが作成されたら、Djangoのインストールは成功しているといってよいと思います.
後でこの「mysite1_4」はrootにオーナーを変更するか、/var/wwwあたりにコピーしてそちらで運用することになりますが、今はここでよいでしょう.
Djangoを起動してみましょう.「cd mysite1_4」して「mysite1_4」ディレクトリに入ります.
/opt/python2.7.3/bin/python2.7 manage.py runserver (このマシンのホスト名):8000
ブラウザで「http://(このマシンのホスト名):8000/」または「http://(IPアドレス):8000/」で以下のような表示になれば成功です.
Djangoの稼動確認が終わったところで、mod_wsgiをインストールします.apacheもインストールしておいてください.apacheのdevelもインストールしましょう.インストールしておかないとなにやらapxsが無いとか怒られますし.
mod_wsgiのソースをダウンロード・解凍します.以下のようにしてmod_wsgiをインストールします.
./configure --with-python=/opt/python2.7.3/bin/python2.7
make
(suして)make install
筆者は先の「mysite1_4」ディレクトリを「/var/www/Django14」配下にコピー、オーナーをrootに変更しました.adminのままだとapache+mod_wsgiで動かしたときに「権限がない」と言われますので.
以下のように「/etc/httpd/conf/httpd.conf」を設定します.
LoadModule wsgi_module modules/mod_wsgi.so
Alias /static/ /var/www/Django14/static/
<Directory /var/www/Django14/static>
Order deny,allow
Allow from all
</Directory>WSGIDaemonProcess example.com python-path=/var/www/Django14 processes=5 threads=1
WSGIScriptAlias / /var/www/Django14/mysite1_4/wsgi.py
WSGIPythonPath /var/www/Django14<Directory /var/www/Django14/mysite1_4>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
また、mysite配下にwsgi.pyを作成します. IntegrationWithDjango - modwsgi
import os, sys
sys.path.append('/usr/local/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
apacheを再起動して、「http://(このマシンのホスト名)/」または「http://(IPアドレス)/」で、上と同じ表示になれば成功です.
追記:
Djangoのsettings.pyのtimezone設定を「Asia/Tokyo」にしないとapacheのaccess.logの時間も日本時間になりません.
追記2:
staticは以下のような感じでシンボリックリンクを
ln -s /opt/python2.7.3/lib/python2.7/site-packages/django/contrib/admin/static/admin admin