CakePHPでつくられたプロジェクト管理システムchawを試してみる

lithiumのサイトで使われているchawが気になったので試しにいれてみた。

opensourceだけど自前でのホスティング方法とかあんま書いてない、gitでインストールするようだ。git+sshの使い方が分かる人じゃないと無理。git+sshやapache+PHP5+MySQLが使える前提ですすめる。

ユーザ登録する

gitでのアクセス権を得るために、まずhttp://thechaw.com/にてユーザ登録する。

アカウント設定で、sshの公開鍵を貼り付ける。
参考: http://thechaw.com/wiki/guides/setup

インストール

実はgitでchawを取得するとINSTALL.txtがトップディレクトリにある。ただ今回はそのやり方には 従わぬ 。なぜかというとrewriteしているとは言えドキュメントルートの下に全部のソースファイルを置くやり方があまり好きではない。もともとサブディレクトリで運用したかったのでドキュメントルート外の適当な位置においてAliasをつける。

/usr/share/におく例ですすめる。

cd /usr/share/
git clone git://github.com/cakephp/cakephp1x.git
cd cakephp1x
git checkout -b 1.3 origin/1.3
git clone git@thechaw.com:chaw.git

これでCakePHP 1.3の構成にcakephp1x/appとは別にアプリがcakephp1x/chawに入った状態になる。

設定変更

debug=0にしとく。

Configure::write('debug', 0);

データベースの作成

rootは使いたくないので事前にユーザとアクセス権を与えておく。

CREATE DATABASE chaw DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON `chaw`.* TO chaw@localhost IDENTIFIED BY 'chaw';
FLUSH PRIVILEGES;

データベース設定とテーブル作成

ユーザ、パスワード、データベースにchawをつかっている。

cd /usr/share/cakephp1x/chaw
../cake/console/cake -app chaw bake db_config
Name:
[default] >
Driver: (db2/firebird/mssql/mysql/mysqli/odbc/oracle/postgres/sqlite/sybase)
[mysql] >
Persistent Connection? (y/n)
[n] >
Database Host:
[localhost] >
Port?
[n] >
User:
[root] >chaw
Password:
>chaw
Database Name:
[cake] > chaw
Table Prefix?
[n] >
Table encoding?
[n] >
Look okay? (y/n)
[y] >
Do you wish to add another database configuration?
[n] >
File `/path/to/chaw/config/database.php` exists, overwrite? (y/n/q)
[n] > y
Wrote `/path/to/chaw/config/database.php`

スキーマ(テーブル)の作成

../cake/console/cake  -app chaw schema create
Are you sure you want to drop the table(s)? (y/n)
[n] >
Are you sure you want to create the table(s)? (y/n)
[y] >

apacheの設定

apacheのconfに以下を入れておく

Alias /chaw /usr/share/cakephp1x/chaw/webroot
<Directory /usr/share/cakephp1x/>
  AllowOverride All
  Options FollowSymLinks MultiViews ExecCGI
  Order allow,deny
  Allow from all
</Directory>

も必要。

サブディレクトリで運用するのでRewriteBaseを入れておく。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /chaw
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
cd /usr/share/cakephp1x/chaw
sudo chown -R www-data:www-data tmp content
sudo /etc/init.d/apache2 restart

動かしてみて

これでhttp://servername/chawでアクセスできるわけだが、実際使ってみるといまいち設定の方法がわからない。たとえば誰でもユーザ登録できるようになっているのを止めたいと思ってもできるのかできないかもわからなかった。デザインはクールだし、forkなどgitらしいオープンソースの公開方法はできそうだけどそこに期待するならgithubでもよいわけだし、プロジェクト管理の機能性としてはredmineの方に分がありそう。今のところ自分には使いこなせないっぽい。