mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

OpenPNE 3.1.0をFedora系にインストールする

Symfony1.2系がベースとなり、かなり攻め攻めかつ、さらにPropel=>DoctorineへORMを変更しパフォーマンス・モデル構築・参照の容易性を確保したPNE3.1.0をfedora系のOSにインストールした。作業自体は1時間くらいで終わった。

概要

ミドルウェアとか

  • 必要なphp関連のモジュールをrpmでいれておいてMTAも設定(mydomainからの送信をすくなくとも許可しておく)しておく
  • rpmphpmysqlに必要なモジュールとさらにphp-cliphp-gd、php-pdo、php-pearがはいっていることを確認する。必要に応じていれる。特にPDOとCLIは必須。パッケージによるがxmlサポートも必要に応じてインストール (3.0.x系のpropelで利用)
  • PNEDIR・・PNEを設置するPATH
  • PHPは5.2.x以上が必要。MySQLも5.x以降。

所感

  • ORMで利用しているDoctorineの最新バージョンがPHP5.3で利用する機能を活用していくため、PHP5.3が要求されることも可能性としては存在している
  • WEBインストーラは存在しないためPHPCLIから実行できる環境が必要(レンタルサーバー等にいれる場合でもすくなくともVPSは必要か。)
  • symfonyのもっさりの原因となっていたPropelからDoctorineに移行したことにより高速化がしやすくなったり、開発が容易になったりとメリットが大きいが、3.0.x系のpluginのキャッチアップという課題が存在している
  • もりもりPNE本体もプラグインもバージョンアップしていく!という方はインストールしてみてもいいとおもう。

資源の取得

mkdir PNEDIR
cd PNEDIR
wget http://jaist.dl.sourceforge.net/sourceforge/openpne/OpenPNE-3.1.0.zip
unzip等よしなに


Apacheの設定


apacheのvirtualhost設定を適宜設定する
ポイントとしては、PNEDIR/webをDocumentRootにしておく。エラーログをカスタムログにしておくとよいと思う。

client pcのhostsにvirtualhostに対応したIPとFQDNを追記して当該FQDNの/にブラウザでアクセスして、symfonyのエラーがでることを確認。

MySQLの準備


MySQLのユーザーを準備しておく

mysql> GRANT USAGE ON *.* TO 'データベース名'@'localhost' IDENTIFIED BY 'パスワード';
mysql> GRANT ALL ON データベース名.* TO 'データベースユーザ名'@'localhost';


DBの作成自体は、doctorineがつくってくれるのでCREATE DATABASEしなくてよい。念のためmy.cnfの設定をみてutf8でDBが作成できるかどうか検証しておいた方が良いと思う。

キャッシュの削除

php PNEDIR/symfony symfony cc

で不要なキャッシュを削除しておく
開発時に話だが、symfony ccは設定ファイルのymlやルーティングを更新するたびに実行しておいたほうがよい。こまめなsymfony ccを心がける

プラグインの用意、インストール

プラグインの同期をとり、日記プラグインをインストールする

  • Pluginはpackageで提供されるが、バージョンによって、3.1.0系に対応していないケースがあるので要注意
  • ミドルウェアのバージョン等をうまくごまかすにはパッケージのxmlを修正してあげれば動くかもしれない
  • ほとんどの機能はプラグインで提供される。さらにプラグインはPNE本体のバージョンアップに追従する必要があるのでPNE本体が新しすぎると利用したいプラグインの更新の足並みがそろわないという運用上の課題が発生する
  • PNE3.1.0系だとPNE本体インストール後からプラグインを入れた場合、再インストール手続き(バックアップコマンドの実行、再度インストール、復元コマンド)が必要になる

$ php symfony opPlugin:sync
$ php symfony opPlugin:install --stability=beta opDiaryPlugin

はいっているプラグインは下記で確認できる(自前設置は除く)

php ./symfony plugin:list

Installed plugins:
symfony 1.2.7-stable # pear.symfony-project.com (symfony)
opDiaryPlugin 0.9.0-beta # plugins.openpne.jp (plugins.openpne.jp)
opAuthMailAddressPlugin 1.1.0-beta # plugins.openpne.jp (plugins.openpne.jp)
opAuthMobileUIDPlugin 1.0.0-stable # plugins.openpne.jp (plugins.openpne.jp)
opCommunityTopicPlugin 0.9.0-beta # plugins.openpne.jp (plugins.openpne.jp)
opWebAPIPlugin 0.3.0-beta # plugins.openpne.jp (plugins.openpne.jp)
opAuthOpenIDPlugin 1.0.0-stable # plugins.openpne.jp (plugins.openpne.jp)

PNE本体のインストール

php symfony openpne:install


PNE3.1.xから対話式のインタフェースが表示される。(ベースとなるsymfony1.2から対応)
前ステップであったDBの情報などをまとめて指定する。

ログイン画面の動作を確認する

フロント側

管理画面側

  • Virtualhostで決めたFQDN/pc_backend.php
    • admin / password