Windows に StatusNet を入れる

作業メモ。

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 で、必要な拡張を有効にする (コメントアウトされているので先頭の ; を削除)
    • extension=php_curl.dll
    • extension=php_gd2.dll
    • extension=php_mbstring.dll
    • extension=php_mysqli.dll
  • 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 を有効にする (コメントアウトされているので先頭の # を削除)。
  • ついでに、httpd.conf の DirectoryIndex に index.php を追加

    DirectoryIndex index.html index.php

  • ブラウザで install.php を開く。http://localhost/statusnet/install.php とか。
    • この時点で「PHP のモジュールが認識できない」とか「FancyURL の検出に失敗した」とか出てたら、設定が足りない
  • 必要な項目を入力して次の画面へ。しばらくしてページが切り替わったらインストール完了

最後のところ、実は設定が正常にできてなくても「次の画面」が同じように表示されてしまう。僕がハマったのは、

  • MySQL のインストール時に strict を選択してしまっていた。検索したら下記のつぶやきが見つかった。ありがたい。
  • メールサーバを用意していなかった。インストール時に管理者のアカウントが作られるけど、このときメールアドレスを confirm するためのメールが飛ぶ。PHP からメールを飛ばせるように設定しておかないと、メール送信に失敗する。

の 2 つ。