OpenPNE2.14.9からOpenPNE3.8.1へのバージョンアップ

  • 投稿日:
  • by
  • カテゴリ:

 うちが管理している下北沢ブロイラーSNSはOpenPNE2.14.9を利用して運用していますが、いい加減OpenPNE3系にバージョンアップしようかと検討していました。新規でOpenPNE3系をインストールしたことは何度もありましたが、2系から3系へのバージョンアップはちゃんとやったことがなかったのでトライです。

 まず、最新版のOpenPNE3.8.1のドキュメントをチェック。ん? OpenPNE2系からのバージョンアップドキュメントがない、、、。OpenPNE3.6.5にはOpenPNE2系からのバージョンアップドキュメント(doc/ja/Upgrade_From_2_Guide.txt)がついているので、それに従ってまずはOpenPNE3.6.5にバージョンアップをします。OpenPNE2系とは必要なモジュール、というかそもそもPHPのバージョンも5.2.3以降じゃないといけないので、最新のサーバにデータを持って行きます、あとconfig.phpね。OpenPNE2のソース自体は持って行かなくても大丈夫です。

 新サーバにgitでソースを落としてきて(上記ドキュメントでやるとき、二つのgitコマンドの間にcd OpenPNE3;ってコマンドが必要)、まずはOpenPNE3側の準備。OpenPNE2のconfig.phpをconfig/config.OpenPNE2.phpに設置。ここで気づいたのですが、新サーバにデータベースをつくらないと。とりあえず、旧サーバと同一の条件でmysqlにデータベースを構築し、持ってきたdumpファイルをrestoreっと。
 で、引き続きバージョンアップ作業。マニュアルに書かれているとおりコマンドを実行していき、最後の最後でデータをコンバート(するであろうスクリプトを実行)。

./symfony openpne:upgrade-from-2 --origin=2.14

ん? エラーが出たよ??

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 92 bytes) in /xxx/OpenPNE3/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection/Statement.php on line 230

まー、PHP使ってるとよく出るエラーだよね。アップグレードドキュメントにもちゃんと記述があって、

* fix_old_image_data のコンバートで「Allowed memory size of xxxx bytes exhausted ... 」というようなエラーメッセージとともに失敗する場合、 php.ini の memory_limit ディレクティブの設定を見直すか、それが難しい場合は config/config.OpenPNE2.php の IMAGE_MAX_FILESIZE の設定値を大きな値に設定してください

php.iniのmemory_limitをでかくする、転ける。もうちょっとでかくする、転ける、、、さらにでかくする、転ける、、、。実装メモリのギリギリまで増やす、通った!! これ、なんとなくやってる内容がわかるんだけど、長期間使ってるSNSだと結構厳しいかも。512MBのVPSとかだと通らないのかもしれないなぁ。

 で、バージョンアップ完了。あれ? 思った以上に躓かなかったな、、、あ、違うOpenPNE3.8.1にしないと。ここからは、OpenPNE3.8.1のアップグレードドキュメントに従って作業。私の環境ではなんの問題もなく、OpenPNE3.6.5からOpenPNE3.8.1へのアップグレードが完了しました。しまった、OpenPNE3.6.5で試しにログインするの忘れていた、、、。

 でで、OpenPNE3.8.1でログインを試みる。フツーにログイン完了。ん、ログイン画面(トップ画面)が崩れているなぁ。ログインは出来たけど、2系のデザインだとクリックできない箇所が多々、、、うーん、管理画面からデザインを見てみるけど変更できない、困った。
 と、先ほどの2から3へのアップグレードガイドにこんな記述があった。

* OpenPNE2 のナビメニューにないメニュー項目、 OpenPNE3 にない機能のメニュー項目はナビメニューからクリックできないようになっています。対応するにはナビメニューの設定を調節し、 CSS に記述を加えるか、 OpenPNE2 互換スキンを使わないように管理画面から opSkinClassicPlugin を無効にしてください

これだ、プラグインでやっていたのか、、、。管理画面で「プラグイン設定」→「スキンプラグイン設定」→「opSkinBasicPlugin」で設定したら、3系のデザインが表示されました。とりあえず、この部分は2系を引き継ぐのではなく3系のデザインから作り直した方がいいよね、うんうん。

 以上で、バージョンアップ自体は完了。さて、本当に移行しようかどうしようか、、、。いろいろ挙動が変わって面倒な部分がありそうだなぁ。利用者の皆様と相談してどうするか決めたいと思いますーーー。OpenPNE3のプラグインを開発しやがれフラグが立ったような気がする(手嶋さんの罠だー)。