PHP7とAPCuによるWordPressの高速化

FreeBSDではPHP7用のAPCuのportsが存在しない状態が続いていたが、2016年8月初日にようやくportsになったみたい。まぁ、存在しないといっても既存のdevel/pecl-APCuのportsをコピペしてMakefileの対象バージョン(PORTVERSION)をAPCuの5系に書き換えてIGNORE_WITH_PHP= 70の行を消すだけで野良portsが作れたんだけど。
(もちろん、distinfoも書き換えてmake makesumするのも一連の流れとして必要)
と、いうことで野良portsでなく公式portsでインストール。

# cd /usr/ports/devel/php70-APCu
# make install

/usr/ports/devel/php70-APCu/work/apcu-5.1.5/apc.phpをどこかのウェブ用ドキュメントルート下に置いてAPCuのキャッシュを表示・管理できるようにする。(5.1.5の部分はバージョンなので将来は変わる)
apc.phpを編集。管理者のログインアカウントとパスワードをオリジナルなものに書き換える。

1
2
defaults('ADMIN_USERNAME','apc');           // Admin Username
defaults('ADMIN_PASSWORD','password');

/usr/local/etc/php.iniにAPCu関係の設定を追記して、PHP周りの再起動。

で、APCuを使う側だけど、以前に書いたAPCuによるWordPressの高速化では「Tribe Object Cache」プラグインを挙げたんだけど使えないみたい。(PHP7.0 + APCu5.1.5 + WordPress4.6の組み合わせで)
そこで、別のプラグインを使うことに。

今回はWP-FFPCを入れてみた。

APCuを使う 1
WP-FFPCを入れた直後はプラグイン管理画面に警告が出る。警告に従って設定が必要。

このプラグインは少し気が利かないので他のキャッシュ系プラグインのように自動でWordPressの設定ファイルwp-config.phpを書き換えてくれない。
wp-config.phpファイルをエディタで開き、define('DB_NAME', 'hoge');の上辺りに1行追加

define('WP_CACHE', true);

APCuを使う 2
キャッシュの種類(Select backend)は当然APCuにする。また、キャッシュの有効期間を指定する。画像の例では記事追加や更新が殆どないサイトを想定していてAPCuによるキャッシュの有効期間を12時間(43200)、ブラウザのキャッシュ期間を1日(86400)とした。(動作確認するまではブラウザのキャッシュ期間は0にした方が良いかも)
普通に更新のあるウェブサイトなら少なくともHomeのキャッシュ期間はサーバ側が3600(1時間)、ブラウザ側が600(10分)のように特にブラウザ側のキャッシュ期間を必要最低限にしておいた方が良い筈。
上の画像には表示されてないがスクロールして下の方に設定保存(Save Changes)ボタンがあるので押すと警告が2つ減る。

APCuを使う 3
キャッシュ対象を指定することもできる。初期値が常識的なので触る必要はないかも。
チェックしたものがキャッシュ対象でなくなる。

最低限の設定はこれで終わり。

APCuを使う 4
WordPressのページを幾つか表示した後にapc.phpを開きキャッシュの状態を確認。リスト表示にWordPressのサイトのURLが表示されていればキャッシュされている。
また、キャッシュされたページを閲覧した場合はHit列の数値が増える筈。Hitが発生(キャッシュを利用)していること(1以上)を確認できれば正常に機能していると言える。

APCuはデータキャッシュなので特定の条件で内容の一部または全部を変えて出力するようなページには向かないというか使っちゃダメ。例えばPCブラウザ用とモバイル用で出力を分けているとか日付・時間で出力を変えているとかetc.という場合。モバイル端末で訪れた人にPC用ページが表示される(或いはその逆)というようなことになる。ブラウザの窓サイズによって可変表示される綺麗なレスポンシブなページであれば出力するページそのものが変わるわけではなく表示するブラウザ側でCSSを元にレイアウトを変えるのでキャッシュするのに向いている。

関連記事:

続・大人はクーラーの効いた涼しい部屋でポケモソG○

2016年8月13日にチート組がポケモンGOのアカウントを停止されて話題になってる。派手に怪しい行動(ワープ)すりゃバレて規制されるのは当然。このページの方法でチマチマやるならバレないっぽい。(保証なし)

前回はMock Mock LocationsとFake GPSを使う方法について動画を作ったが、今回はGPS JoyStickを使った方法について動画にしてみた。
GPS JoyStickは「仮の位置情報」の隠蔽と位置変更機能を含むXposedのモジュール。しかもポケモンGOのプレイ画面上に(仮想)ジョイスティックを表示してポケモンGOをやりながら位置変更ができるスグレモノ。スペック的にはかなり良さ気。

必要なもの
  • Xposed Framework
  • Xposed Installer (便利)

準備
Xposed InstallerでPokemon Go GPSJoystiskをダウンロード&インストール。そしてモジュールの有効化を行って再起動。
Androidの設定画面から[開発者オプション]を開き[仮の現在地情報アプリ]でGPSJoyStiskを選択。

GPSJoyStiskの設定
  • 偽装開始位置の指定
  • お気に入りの地点をブックマーク (任意)
  • ジョイスティックでの移動速度指定 (重要)

画面に表示されるジョイスティックの位置が標準だと下すぎるかもしれない。ジョイスティックの位置調整はジョイスティックの上のを押して上にスワイプで下方向に、を押して下にスワイプで上方向に移動する(逆に動く)。左右も。

スクリーンショットで見るとゲーム画面にジョイスティックがあって凄い環境のように見えるけど、ジョイステイックはポケモンGO専用ではなくポケモンGOのフィールドマップの回転とは連動していない。だからフィールドマップを回転させてしまうと思い通りの方向に進むのに苦労することに。
そしてジョイスティックをグイグイ動かしてもなかなか追従してくれない。
ということで、ジョイスティックは優れていそうに見えても実際に使うとどうかなというかストレス凄い。
ポケモンにボール投げる画面で「GPS信号が」の赤表示が1秒以上出た時はどの方向でも良いのでジョイスティックを少し動かしてやらないと、「エラー」で捕獲できないままフィールドに戻される場合があるみたい。
Mock Mock Locations + Fake GPSの方が自動徘徊機能が使えるしアプリの切り替えの面倒があっても移動のストレスが少ない気がする。

2016年9月13日追記
本日のアプリ更新のお知らせを見る限り、バージョン0.37.0以降はroot化した端末ではプレイできなくなるよう。

関連記事:
Up