RhodeCodeをPostgreSQLで使う
PostgreSQLをちょっとばかり理解したとおもうので、RhodeCodeをSQLiteでなくPostgreSQLで使えるようにしてみました。
一応、最初インストールするところから。
環境:Debian wheezy 64bit on VirtualBox
いろいろインストール
$ su -
# apt-get install python-dev python-virtualenv git libreadline6-dev libpq-dev vim
とりあえずいろいろインストールします。
pgvmのインストールとPostgreSQLのセットアップ
普通にPostgreSQLをインストールすれば良いのですが、pgvmで使ってみたかったのでpgvmをインストールします。
$ wget -qO - https://raw.github.com/guedes/pgvm/master/bin/pgvm-self-install | bash $ source ~/.bashrc
PostgreSQLをインストールします。
$ pgvm install 9 $ pgvm use 9.2.4 $ pgvm cluster create rhodecode $ pgvm cluster start rhodecode
PostgreSQLにロールとデータベースを作成します。
$ pgvm console rhodecode postgres=# CREATE ROLE rhodecode LOGIN; postgres=# CREATE DATABASE rhodecode OWNER rhodecode; postgres=# \q
libqpにパスを通す必要があるようなので、ld.so.conf.dにpostgresql.confを作成します。
$ su - # echo "/home/sasaplus1/.pgvm/environments/9.2.4/lib" > /etc/ld.so.conf.d/postgresql.conf # ldconfig
こんな方法があるなんて知らなかった……
virtualenv環境にRhodeCodeをインストール
virtualenv環境にRhodeCodeをインストールします。RhodeCodeでPostgreSQLを扱う際に、psycopg2というモジュールも必要なようなので一緒にインストールします。
$ virtualenv rhodecode $ cd rhodecode $ source bin/activate (rhodecode)$ easy_install rhodecode (rhodecode)$ easy_install psycopg2 (rhodecode)$ paster make-config RhodeCode production.ini
production.iniを編集します。
host = 0.0.0.0 lang = ja # sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db # sqlalchemy.db1.url = postgresql://user:pass@localhost/rhodecode sqlalchemy.db1.url = postgresql://rhodecode@localhost:5433/rhodecode
host, lang, sqlalchemyの辺りを書き換えれば大体良い気がします。
PostgreSQLはpgvmでインストールした場合、ポートが5432でなく5433からなのでその辺も忘れずに。
(rhodecode)$ mkdir repos (rhodecode)$ paster setup-rhodecode production.ini
これで設定時にいろいろ答えれば正常にセットアップは終了するかと。
起動する
(rhodecode)$ paster serve production.ini --daemon
これで起動します。
停止するときは
$ paster serve production.ini stop
で。
でもまあ、本格的にするならちゃんとrhodecode用のユーザを作った方が良いと思いますが。
あとついでにgunicornでも動作させられるようなので、それも入れたかったかなーと。
でもそれは今度にしようかと。とりあえず今回はここまで。
参考:
http://d.hatena.ne.jp/dai_yamashita/20121011/1349926223
cannot open shared object fileの対処 - ksauzz weblog