作業メモ。
- StatusNet 公式のインストール手順
- http://gitorious.org/statusnet/mainline/blobs/master/README
XAMPP は使わない。
Apache HTTP Server
Apache 2.2 をダウンロードしてインストール。デフォルトだと C:\Program Files 配下にインストールされるが、UAC を回避するために他の場所を指定した。
今回は PHP 5.2 を使うのでこれでいいが、PHP 5.3 を使う場合は問題がある。PHP の公式サイトでは Apache 用に VC6 でビルドしたものと IIS 用に VC9 でビルドしたものが配布されていたが、現在では 5.3 の VC6 ビルドは廃止されてしまった。したがって、PHP 5.3 を Apache で使う場合は、VC9 でビルドされた Apache を用意することになる。PHP 公式サイトでは下記サイトのバイナリがオススメと書かれている。
PHP
上記の通り PHP 5.3 の VC6 ビルドがなくなってしまったことと、StatusNet 自体が PHP 5.2 ベースで開発されているようなので、今回は PHP 5.2 を使う。以前に zip アーカイブを使ってインストールしたことはあったので、今回はインストーラの方を……と思ったんだけど、やってみたらインストーラの方が逆に躓きやすいような。結局 zip でやり直してしまった。
- 展開先は C:/php にする。ルート直下はイヤだなぁと思っても C:/php にする。
- php.ini-recommended をコピーして、php.ini にリネームする。
- php.ini を開いて、拡張のパスを設定する。
- extension_dir = "C:/php/ext"
- 同じく php.ini で、必要な拡張を有効にする (コメントアウトされているので先頭の ; を削除)
- Apache の conf/httpd.conf 末尾に以下を追加する。
- PHPIniDir "C:/php"
- LoadModule php5_module "C:/php/php5apache2_2.dll"
- Apache の conf/mime.types 末尾に以下を追加する。
- php のディレクトリにある libmysql.dllを、Apache の bin ディレクトリにコピーする。
以前は、OpenSSL 関連の DLL (libeay32.dll と ssleay32.dll) をコピーするという手順があったけど、今のバージョンではやらなくていいっぽい。
MySQL
- インストールして、StatusNet の README に書いてある通りにデータベースを作っておく
- インストール時、デフォルトだと strict モード (?) になっているが、これを外しておく
James
StatusNet からメール送信が行われる。今回は開発用なので、下記の記事を参考にしてローカルに SMTP サーバを準備する。
- こせきの日記 - Windowsで動くウェブ開発専用のSMTP・POPサーバ
- http://d.hatena.ne.jp/koseki/20060729/standalonesmtp
StatusNet
- 公式サイトからダウンロードしたアーカイブを展開して、Apache の htdocs の下に好きな名前で置く。
- その直下にある htaccess.sample の内容を、Apache の conf/httpd.conf に追加する。
- ただしその中で RewriteBase /mublog/ と書いてあるところを、自分が決めたパスに直す。
- あと、
〜 で囲む。
- 同じく httpd.conf で、mod_rewrite を有効にする (コメントアウトされているので先頭の # を削除)。
- LoadModule rewrite_module modules/mod_rewrite.so
- ついでに、httpd.conf の DirectoryIndex に index.php を追加
DirectoryIndex index.html index.php
- ブラウザで install.php を開く。http://localhost/statusnet/install.php とか。
- この時点で「PHP のモジュールが認識できない」とか「FancyURL の検出に失敗した」とか出てたら、設定が足りない
- 必要な項目を入力して次の画面へ。しばらくしてページが切り替わったらインストール完了
- http://localhost/statusnet/<インストール時に入力したユーザ名> で空のタイムラインが表示されれば OK
最後のところ、実は設定が正常にできてなくても「次の画面」が同じように表示されてしまう。僕がハマったのは、
- MySQL のインストール時に strict を選択してしまっていた。検索したら下記のつぶやきが見つかった。ありがたい。
- メールサーバを用意していなかった。インストール時に管理者のアカウントが作られるけど、このときメールアドレスを confirm するためのメールが飛ぶ。PHP からメールを飛ばせるように設定しておかないと、メール送信に失敗する。
の 2 つ。