AmazonJS再検証と答え「半端に動く」 ~KUSANAGI(HHVM)で動かないプラグイン(2) 

この記事は約4分で読めます。

2017-03-22KUSANAGI for ConoHa, WordPressプラグイン

本記事はKUSANAGIで動かないプラグインを検証するものです。
具体的には下記記事の続き。

AmazonJSについて再検証しましたので報告します。
恐らくこれで確定と思います。
また追加で動かないプラグインを確認しましたのであわせてお知らせします。

AmazonJSの再検証

きっかけ

WordPress系のサイトをあちこち回っていると、やっぱり「HHVMは速い」という記事が多い。
PHP7も追いついてはきているけど、HHVM>PHP7。
うーん、私の環境ではPHP7の方が体感でもわかるくらい速いのだが。
きっとHHVMが悪いんじゃなくて私が悪いんだ!
そう思って再び導入に再チャレンジしました。

すると、モバイルだけが白画面に。
恐らくキャッシュ絡みだろうとfcache(fastCGI)をクリアする。
案の定、直りました。

AmazonJSが動かない!

しかし……

質問者の写真

AmazonJSを起動したら真っ白だよ!
 

あれ? fcacheをクリア→やっぱりダメ。
一旦PHP7に切り替え、当然動きます。
再びHHVM、念のためfcacheをクリアしてAmazonJSを起動。
ちょっと起動に時間が掛かるがやっぱり動いた。
商品リストも出た……あれ?

質問者の写真

「デフォルト」(=動的)が選択できない!
 

画像(html)は選択できるのですが。
以前確認した時はhtml・動的両方ともいけました。

どういうこと?
確かに前回も最初はおかしかった。
もちろんキャッシュも疑ったから何回かクリア掛けて検証したのですが……。

検証その1 AmazonJSはHHVMで動くか否か

わからないのは気持ち悪い、ということで再検証しました。
もう、1からサーバー立てて。

条件

ConoHaでVPS追加し、WordPressをインストール。

512MB、Apache、HHVM、キャッシュはbcache、fcacheともにOFF。
WP Multibyte Patch以外のプラグインはインストールせず。
記事などもなし。
テーマはWordPressデフォルト。

つまり真っ新な状態にAmazonJSのみを入れた状態です。

結果

AmazonJSの、

起動(検索バー表示&商品の検索・選択) → OK
画像表示(HTML) → OK
レイアウト表示(動的) → ×

つまり、

画像機能は使えるけど、レイアウト表示は使えない。

これがAmazonJSのHHVMにおける最終的解答といってよさそうです。
一言で言えば「半端に動く」ということですね……。
前回の記事では「動きます」と断定したタイトルつけて申し訳ございませんでした。

検証その2 AmazonJSの「動く」現象と「真っ白」になる現象は再現できるか

今度は「動く」現象と「プラグイン起動画面が真っ白になる(検索バーすら表示されない)」のを再現できないか試しました。

方法

怪しいのはFastCGIと当たりはついています。ゆえに、

同条件でfcacheをON。
PHP7とHHVMを切り替えながら、キャッシュクリアのタイミングを変えてみる。

これでやってみました。

結果

動く結果は、次の場合で確認できました。

fcache ONの状態で、
PHP7起動→HHVMに変更→fcacheクリアするまで動く

PHP7を起動した状態でfcacheをクリアしてもダメ。
変更してからクリアで初期化されるようです。
だったらHHVM→PHP7の場合はfcacheクリアするまで「動かない」ということになりそうなものですが……こちらは動きます。
どうしてこうなるか、具体的な理由は私にはわかりません。

なお画面真っ白は再現できませんでした。
個人的には変に残ってしまったキャッシュが干渉しているのではないかと推測します。

まとめ

解答者の写真
「AmazonJSはHHVM環境下で画像機能だけは使える」が最終的な答え。
でもAmazonJSの基本的用途と価値は、著作権問題をクリアしつつAmazonアソシエイトの画像をブログ画像として流用できるというもの。
だったらHHVMでもいいんじゃないかしら?