オープンソースQ&Aシステム OSQAのインストール方法
さて、 昨日紹介した オープンソースQ&Aシステム OSQAのインストール方法を解説する。
ここではUnuntu Linux 10.4 を対象に、インストール先ディレクトリは /home/osqa とした。
動作環境
Python 2.6以上
Pythonモジュールの取得
$ sudo apt-get install python-setuptools $ sudo apt-get install python-django $ sudo easy_install South django django-debug-toolbar \ markdown html5lib python-openid
環境設定
cache
ディレクトリを作成する
$ chdir /home/osqa $ mkdir cache
settings_local.py.dist
ファイルをコピーし、設定ファイルを作成する。
$ cp settings_local.py.dist settings_local.py
settings_local.py
ファイルを、次のように編集する。ここでは、データベースとしてsqlite3を使用する。
# encoding:utf-8 ... DATABASE_NAME = '/home/osqa/osqa.db' # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. DATABASE_ENGINE = 'sqlite3' #mysql, etc DATABASE_HOST = '' DATABASE_PORT = '' ... APP_URL = 'http://my.host.name/' #LOCALIZATIONS TIME_ZONE = 'Asia/Tokyo' #OTHER SETTINGS USE_I18N = True LANGUAGE_CODE = 'ja' DJANGO_VERSION = 1.2 ...
データベース設定
データベースを初期化する。
$ sudo python manage.py syncdb --all
この時、
You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no):
というメッセージが表示されるが、ここでは No を選択する。ここではスーパユーザは登録せず、アプリケーション起動後、最初に登録したユーザがスーパユーザとなる。
次に、データベースにデータを登録する。
$ sudo python manage.py migrate forum --fake
OSQAを起動する
$ django-admin runserver --settings=settings
以上で、ブラウザから http://ホスト名:8000 でOSQAにアクセスできる。
MySQLを使う
MySQLを使用する場合は、まずMySQL関連のパッケージをインストールする。
$ sudo apt-get install mysql-server mysql-client python-mysqldb
次に、MySQLにユーザとデータベースを作成する。
sudo mysql -u root -p Enter password: mysql> CREATE USER 'osqa'@'localhost' IDENTIFIED BY 'your_osqa_password'; mysql> CREATE DATABASE osqa DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci; mysql> GRANT ALL ON osqa.* to 'osqa'@'localhost';
settings_local.py
ファイルを、次のように編集する。
DATABASE_NAME = 'osqa' DATABASE_USER = 'osqa' DATABASE_PASSWORD = 'パスワード' DATABASE_ENGINE = 'mysql'
SQLiteの場合と同様に、データベースを初期設定する。
$ sudo python manage.py syncdb --all $ sudo python manage.py migrate forum --fake
Apache+wsgiで接続する
Apache経由で接続する例として、mod_wsgiでの接続を紹介する。
まず、mod_wsgiモジュールをインストールする
$ sudo apt-get install libapache2-mod-wsgi
osqa.wsgi
ファイルを /home/osqa
に作成する。
import os, sys sys.path.append('/home') sys.path.append('/home/osqa') os.environ['DJANGO_SETTINGS_MODULE'] = 'osqa.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Apacheの設定ファイル osqa.conf
ファイルを /home/osqa
に作成する。
WSGISocketPrefix /var/run/apache2 <VirtualHost *:80> ServerAdmin forum@example.com DocumentRoot /home/osqa/ ServerName example.com WSGIDaemonProcess OSQA WSGIProcessGroup OSQA # スタティックファイルはApacheから直接アクセス Alias /m/ "/home/osqa/osqa-server/forum/skins/" <Directory "/home/osqa/forum/skins"> Order allow,deny Allow from all </Directory> Alias /upfiles/ "/home/osqa/forum/upfiles/" <Directory "/home/osqa/forum/upfiles"> Order deny,allow Allow from all </Directory> #this is your wsgi script described in the prev section WSGIScriptAlias / /home/osqa/osqa.wsgi CustomLog /var/log/apache2/osqa.access.log common ErrorLog /var/log/apache2/osqa.error.log </VirtualHost>
osqa.conf
を、/etc/apache2/sites-enabled/
に置く。
$ sudo ln -s /home/osqa/osqa.conf /etc/apache2/sites-enabled/osqa.conf
/home/osqa
ディレクトリを、Apacheから書き込み可能にする。
$ sudo chmod -R g+rw cache $ sudo chmod -R g+rw forum/upfiles $ sudo chmod -R g+rw log $ sudo chown -R www-data *
Apacheを再起動する
$ sudo service apache2 restart