いくつかプラグインをインストールしたのでメモ書き。

ちなみに標準のプラグインを入れるときは,
OpenPNE3まとめwikiリリース情報:バンドルプラグイン から機能を読んで入れるプラグインを選ぶ。
OpenPNE3プラグインリリース情報から最新のリリース内容を確認。(検索ボックスでプラグイン名を検索するとよい。)
プラグインチャンネルサーバに登録されているか確認。(されていれば,コマンドでインストールできる。)
という手順を踏むとよさそうだ。

すべての情報が最新情報とは限らないので,たとえばopDiaryPluginなんかは,①,②だけ見ると1.4.1が最新版かと思うが,③には1.5.1があったりするので注意が必要。(OpenPNE3.8系のスマホ対応版はこれ多いね。)

●opHardeningPlugin

セキュリティ強化のプラグイン。

~/home/miku.moe/OpenPNE> ./symfony opPlugin:install opHardeningPlugin -r 1.0.1
~/home/miku.moe/OpenPNE> ./symfony openpne:migrate --target=opHardeningPlugin

●opAuthSocialPlugin

oneall.com のサービスを使って,twitterやfacebookのアカウントでログインできるようにするためのプラグイン。
別途,oneall.comのアカウント作成と,連携サイトのOAuthアプリの設定も実施。(こちらの設定はそんなに迷うことはない。)

~/home/miku.moe/plugin/opAuthSocialPlugin> git clone https://github.com/tejima/opAuthSocialPlugin.git
~/home/miku.moe/plugin/opAuthSocialPlugin> mv opAuthSocialPlugin opAuthSocialPlugin_0_5_0
~/home/miku.moe/plugin/opAuthSocialPlugin> cp -a opAuthSocialPlugin_0_5_0 ~/home/miku.moe/OpenPNE/plugins/opAuthSocialPlugin
 ~/home/miku.moe/OpenPNE> ./symfony cc

●opCommunityTopicPlugin

先にver 1.0.5.1を入れてみて,そのあとで1.1.2.1の存在に気づいたので,一旦1.0.5.1をuninstallしてから1.1.2.1をinstallしたら,次のSQL文でエラー発生。

SQLSTATE[HY000]: General error: 1005 Can't create table '[db_name].#[sql_connection]' (errno: 121). Failing Query: "ALTER TABLE community_event_image ADD CONSTRAINT community_event_image_post_id_community_event_id FOREIGN KEY (post_id) REFERENCES community_event(id) ON DELETE CASCADE". Failing Query: ALTER TABLE community_event_image ADD CONSTRAINT community_event_image_post_id_community_event_id FOREIGN KEY (post_id) REFERENCES community_event(id) ON DELETE CASCADE

ALTER TABLE [テーブル名] [変更命令] … テーブル変更命令
ADD [列定義] … テーブルに列を追加
CONSTRAINT [名前] [列制約] … 列制約に名前を付ける
FOREIGN KEY ([子カラム名]) REFERENCES 親テーブル名 … 外部キー制約
ON DELETE CASCADE … 親テーブルに対してDELETE命令またはMERGE命令により行削除が行われた際,子テーブルの対応する行も削除するよう指定するオプション

内容的には,community_event_imageテーブルに外部キー制約を設けるSQL文なのだが,error 1005 Can’t create table ( errno: 121 ) というエラーが出ている。
これについてググってみると,

①参照カラムと被参照カラムのデータ型及び長さが同じであること
②作成しようとする外部制約名がデータベース中で一意であること(つまり,他のテーブルで同じ外部制約名を使用していないこと。)

を確認してみると良いということなので調べてみた。

mysql> SHOW CREATE TABLE community_event_image;
| Table                 | Create Table
| community_event_image | CREATE TABLE `community_event_image` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `post_id` int(11) NOT NULL,
  `file_id` int(11) DEFAULT NULL,
  `number` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_number_idx` (`id`,`number`),
  KEY `post_id_idx` (`post_id`),
  KEY `file_id_idx` (`file_id`),
  CONSTRAINT `community_event_image_file_id_file_id` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE CASCADE,
  CONSTRAINT `community_event_image_post_id_community_event_id` FOREIGN KEY (`post_id`) REFERENCES `community_event` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

どうやら,すでに列制約が定義されているにもかかわらず,同じものを再定義しようとしてエラーになっている模様。

どうしてこうなったのか。
opCommunityTopicPluginのuninstallでうまくいってないところがあるのかな?
てか,もしかしてPluginってuninstallしたらまずいのか!?

試しに,opCommunityTopicPlugin 1.1.2.1をuninstallしてみたら,テーブルそのまま残ってるみたいですね。これを消してやるというか,opCommunityTopicPluginのインストールを始める前の状態に戻してやればいけるかも?

mysqldumpで取っておいたデータに復元しよう。

~/home/miku.moe/OpenPNE> mysql -u [usr_name] [db_name] -p -N -e 'show tables' | while read table; do mysql -u [usr_name] -p -e "drop table $table" [db_name]; done
~/home/miku.moe/OpenPNE> mysql -u [usr_name] [db_name] -p  < filename.dump

そして,再度 install と migrate … うまくいった!
よかった。

●opAlbumPlugin

アルバムが投稿できるようになります。
イベント参加時の写真共有に使えるので必要ですね。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
 ./symfony opPlugin:install opAlbumPlugin -r 1.0.0.1
 ./symfony openpne:migrate --target=opAlbumPlugin
 

●opDiaryPlugin

日記機能ができます。
これもあったらおもしろい日記を書いてくれる人がいそうなので必要ですね。
冒頭にも記載した通り,ver 1.5.1(スマホ対応版)を入れます。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
 ./symfony opPlugin:install opDiaryPlugin -r 1.5.1
 ./symfony openpne:migrate --target=opDiaryPlugin
 

opAshiatoPlugin

あしあと機能ができます。
せっかくなので入れておきます。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.1.1 opAshiatoPlugin
./symfony openpne:migrate --target=opAshiatoPlugin

●opTimelinePlugin

タイムライン機能を強化するプラグイン。
いいね機能(opLikePlugin)に対応した 1.2.6 が最新バージョンらしい。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.2.6 opTimelinePlugin
./symfony openpne:migrate --target=opTimelinePlugin

●opLikePlugin

いいね機能です。
リプ書くのは面倒だけど反応返したい時に重宝しますから必要ですよね。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.2.4 opLikePlugin
./symfony openpne:migrate --target=opLikePlugin

●opBlogPlugin

外部ブログ機能を付けるプラグイン。
日記機能の代わりに自分のブログを公開したい場合に使えるので必要かなと。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.0.3 opBlogPlugin
./symfony openpne:migrate --target=opBlogPlugin

opAuthMobileUIDPlugin

携帯電話向けの「かんたんログイン」を提供するプラグイン。
スマホになってあまり必要性は感じないけども,試しに入れてみた。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.3.3 opAuthMobileUIDPlugin
./symfony openpne:migrate --target=opAuthMobileUIDPlugin

●opFavoritePlugin

お気に入り機能。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.0.1 opFavoritePlugin
./symfony openpne:migrate --target=opFavoritePlugin

●opRankingPlugin

コミュニティの人数ランキングとか表示できる機能。

mysqldump -u [usr_name] [db_name] -p > ../db_bak/mysql_[db_name].`date "+%Y%m%d_%H%M%S"`.dump
./symfony opPlugin:install -r 1.0.1 opRankingPlugin
./symfony openpne:migrate --target=opRankingPlugin

●メモ

あと,備忘録として,部分SSL化の設定は,なぜかログイン後に無限にhomepageにリダイレクトされるようでうまく機能せず。
勉強不足でうまく解決できなかったので,全体をhttpsにすることにして,部分SSLの設定はfalseにしました。

携帯電話IPアドレス帯域リストの更新

最新データへの更新メモ

 ~> cd ~/home/miku.moe/mobile_ip
 ~/home/miku.moe/mobile_ip> wget --no-check-certificate https://github.com/openpne/mobile_ip_list/raw/20160609/3.8/mobile_ip_address.yml
 ~/home/miku.moe/mobile_ip> cp ./mobile_ip_address.yml ~/home/miku.moe/OpenPNE/lib/config/config/mobile_ip_address.yml
 ~/home/miku.moe/mobile_ip> mv ./mobile_ip_address.yml ~/home/miku.moe/mobile_ip/old/mobile_ip_address.2016-06-09.yml
 

●プラグインの適用状況まとめ

プラグイン名 バージョン
opDiaryPlugin 1.5.1
opAshiatoPlugin 1.1.1
opCommunityTopicPlugin 1.1.2.1
opHardeningPlugin 1.0.1
opFavoritePlugin 1.0.1
opAlbumPlugin 1.0.0.1
opTimelinePlugin 1.2.6
opMessagePlugin 1.0.0
opRankingPlugin 1.0.1
opBlogPlugin 1.0.3
opLikePlugin 1.2.4
opAuthMailAddressPlugin 1.3.5
opAuthMobileUIDPlugin 1.3.3
opAuthSocialPlugin
opSkinBasicPlugin