Mac OSX Lionで改造版 CodeReadingWiki を動かそう

OSX 10.7 Lion + homebrew で改造版 CodeReadingWiki を動かします。

(参考)CodeReadingWiki 改造版でソースコード解読 http://www.mazn.net/blog/2010/07/03/295.html

MySQL のインストール

% brew install mysql
==> Downloading http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.25.tar.gz

curl: (22) The requested URL returned error: 404
Error: Download failed: http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.25.tar.gz

エラーが出た場合は、brew update してからもう一度やってみる。

% brew update
% brew install mysql
==> Downloading http://dev.mysql.com/get/ Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz
######################################################################## 100.0%
==> Patching
 ...

どうもさりげなくソースファイルが更新されていた模様。

英文の説明通り、MySQL の手動セットアップをします。
引数--userはユーザーアカウントを設定します。ここでは 仮に blondie としています。

% unset TMPDIR
% mysql_install_db --verbose --user=blondie --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

mysql_secure_installation のためにMySQLを起動します。

% mysql.server start
% mysql_secure_installation 

MySQL のrootパスワードやanonymous アカウントの削除、リモートログインの禁止、テストデータベースの削除等の初期設定をY/nでやります。

テーブルを作成します。

% mysql -u root -p
Enter password: ********
  (略)
mysql> CREATE DATABASE crwiki;
Query OK, 1 row affected (0.00 sec)
mysql> use crwiki;
Database changed
mysql> CREATE TABLE remarks (prj VARCHAR(65) NOT NULL, src VARCHAR(255) NOT NULL, line INT NOT NULL, remark MEDIUMTEXT NOT NULL, PRIMARY KEY(prj, src, line)) TYPE = MYISAM ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE = MYISAM' at line 1

元記事のSQL文は、MySQL 5.5.25a ではエラーになるので、最後の TYPE = MYISAM を ENGINE = MYISAM に直します。

mysql> CREATE TABLE remarks (prj VARCHAR(65) NOT NULL, src VARCHAR(255) NOT NULL, line INT NOT NULL, remark MEDIUMTEXT NOT NULL, PRIMARY KEY(prj, src, line)) ENGINE = MYISAM ;
Query OK, 0 rows affected (0.02 sec)

mysql> Bye
% 

/etc/my.cnf を設定したら、MySQL を再起動します。
(my.cnfについては http://d.hatena.ne.jp/yinkyweb/20111114/1321253944 などを参照)

% mysql.server restart

PHPのインストール

必要ありませんでした。すでにphp 5.3.10 が入っていたようです。

Apache のインストール

必要ありません。代わりに、システム環境設定の「共有」を開き、Web共有をオンにします。

GNU Global のインストール

% brew install global

特別な設定などはなし。

crwiki のインストール

tarball を展開して、サイトディレクトリに move します。

% mv ~/Downloads/crwiki-mazn-0.2 ~/Sites/crwiki
% cd ~/Sites/crwiki

crwikiconf.cgiMySQL のホストやユーザ、パスワードを設定します。

解読するソースコードのセットアップ

angeleyes プロジェクトの同名ディレクトリの src にソースコードがあるとします。
ソースコードディレクトリ angeleyes/src をまるごと ~/Sites/crwiki に angeleyes ディレクトリとしてコピーして、mkcrwiki.sh で解析します。

% cp -pr angeleyes/src ~/Sites/crwiki/angeleyes
% cd ~/Sites/crwiki
% ./mkcrwiki.sh angeleyes

必要なら、 angeleyes/crwiki.php のプロジェクト名を設定します。

アクセスする

これで、ローカルホスト上の自分(blondie)のサイトの、CodeReadingWiki(crwiki) に、angeleyes のソースコードを登録したことになります。
アクセスURLは、http://localhost/~blondie/crwiki/angeleyes/ です。

cgi を有効にする(2012/7/12 追加)

cgiを有効にしないと検索機能が使えません。

 % sudo vi /etc/apache2/httpd.conf

などとして

 # LoadModule cgi_module libexec/apache2/mod_cgi.so

この行を探し出し、頭の#を削除して、ファイルを保存します。

さらに、

 % sudo vi /etc/apache2/users/blondie.conf

などとして、

    AllowOverride None

この行を

    AllowOverride All

に書き換え、この行の後に

    AddHandler cgi-script cgi

この一行を追加してファイルを保存します。

apache2の設定ファイルを修正したら、再びシステム環境設定の共有を開いて、Web共有を一度切り、数秒後に再び入れ直せば設定完了です。

Have a nice hack!