ホーム › フォーラム一覧 › YASAKANI Cache フォーラム › エクスパートモードと複数wordpress
-
投稿者投稿
-
2018年4月11日 10:48 AM #6121Anonymousメンバー
YASAKANI Cacheをいつも愛用させていただいております。サイトの表示速度も速くなり、とても重宝しております。ありがとうございます。
今回、不具合が発生し、一応解決しましたので、ご報告させていただきます。
サーバーのルート下のAフォルダー(独自ドメインA)で、エクスパートモードでYASAKANI Cacheを使用していました。
今回、同じルート下にBフォルダー(独自ドメインB)に、新しいwordpressをインストールしました。そのインストール直後に、ドメインBのURLで正常にトップページが表示されることを確認しました。
しかし、しばらく経つと、ドメインBのURLのままで(リダイレクトせず)、ドメインAのトップページが表示されるようになりました。
そこで、php.iniのauto_prepend_file行を削除したところ、正常に戻りました。
いまのところ、ドメインAは、YASAKANI Cacheを”有効”モードで使用させていただいております。
対策のご参考になれば幸いです。
はじめ国際特許事務所 榎_はじめ
2018年4月11日 2:53 PM #6128enomotoキーマスター報告ありがとうございます
いくつか確認させてください
マルチサイトでなく、シングルサイトを2つ作成してる状態で、ドメインAのサイトとドメインBのサイトは別々にYASAKANIキャッシュプラグインをインストールして、ドメインA、ドメインB共にエキスパートモードしたら不具合が発生
対策として、ドメインAを通常モード、ドメインBをエキスパートモードにしたら正常化したという認識でよろしいでしょうか
ちょっと想定外というか php.ini の auto_prepend_file を2つのサイトで使用することは考慮していませんでした (^_^;)
対策が可能かどうかも含めて調べてみないと何とも言えません
2018年4月11日 3:47 PM #6129Anonymousメンバー丁寧なご返答ありがとうございます。
マルチサイトではなく、シングルサイトを2つ作成した状態です。
ドメインBにはYASAKANIキャッシュプラグインはまだインストールしていません。ドメインAのみエキスパートモードにした状態で、ドメインBのURLで、ドメインAのトップページが表示されるという不具合が発生しました。
サーバ(さくらインターネットのレンタル)は、このような構成です。
・ルート
・・ドメインAのフォルダ(wordpressインストール)
・・・/wp-content/yasakani-cache-exload.php
・・ドメインBのフォルダ(wordpressインストール)ルートに一つのphp.iniであれば、私のようなケースは交通整理が必要かもしれませんね。
はじめ国際特許事務所 榎_はじめ
2018年4月11日 3:59 PM #6130enomotoキーマスタードメインAとドメインBが別々の php.ini 設定を行えるなら問題ありませんが、同一サーバーの同じPHP環境で php.ini ファイルが共通に使われる場合には php.ini を使ったエキスパートモードは問題があります
対策というか、方法としては php.ini でなく各ドメインにおけるドキュメントルートにある .htaccess を使えば別々に指定するすることが可能となります
.htaccess への auto_prepend_file の設定は、環境によっては許可されていない場合もあるのですが、可能ならドキュメントルート下の .htaccess を編集してみてください(許可されていない場合は 500 サーバーエラー等で真っ白画面です)
.htaccess への記述は php.ini とちょっと変わり下記のようになります
php_value "auto_prepend_file" "設定画面に表示されている yasakani-cache-exload.php"
.htaccess で設定できない場合は、エキスパートモードを使わずにご利用ください
2018年4月11日 9:09 PM #6135Anonymousメンバーアドバイスありがとうございます。
早速チャレンジしました。
さくらインターネットは、許可しない方針のようで、500サーバーエラーになりました。そこで、代替策を調べていて、『.user.ini』ファイルを試してみました。
PHPマニュアル(http://php.net/manual/ja/configuration.file.per-user.php)まず、大元ルートのphp.iniに、次の行を加えます。
user_ini.filename = “.user.ini”次に、ドメインAのフォルダーに、『.user.ini』を置きます。これには、
auto_prepend_file = “設定画面に表示されている yasakani-cache-exload.php”
を加えます。この状態で、ドメインAのYASAKANIキャッシュプラグインの設定画面は、エキスパートモードと表示されます。
※これで本当にエキスパートモードであれば、
ドメインBのフォルダーにも『.user.ini』をローカルに設置すれば、両ドメインともそれぞれエキスパートモードで使えそうです。ただ・・こちらではさらに速くなった実感(気のせい?)はあるのですが、本当に内部でエクスパートモードなのかどうか確証がありません。
いかがでしょうか?
なお、『.user.ini』が使えるのは、phpがCGI/FastCGI SAPI の場合のみです。(さくらインターネットは、CGI/FastCGIでした。)
はじめ国際特許事務所 榎_はじめ
2018年4月12日 11:50 AM #6136enomotoキーマスターおおー 良く調べましたね (^^)
.usr.ini 知らなかったです
調べたところ .htaccess の代わりに活用できるみたいです。Apache 以外でも使えるので大元の php.ini に書くより使いやすいかも知れませんね
注意点としては
- PHP 5.3 以降
- PHP CGI/FastCGI SAPI の場合のみ
- ユーザー INI ファイルの再読込頻度 は user_ini.cache_ttl で指定可. 未指定時のデフォルト5分 なので .usr.ini 設定変更時の反映に時間かかる
ちょっとすぐに確認できる環境が用意できないので実際に動作確認はしていませんが、問題なく .usr.ini を設置したサイト毎に各々エキスパートモードにすることが可能と思われます
エキスパートモードの一番の特徴は、PHPスクリプトゼロデイ攻撃の防御機能なので実は高速化は副産物のようなものです
設定オプションの “PHPスクリプトゼロデイ攻撃” をチェックしてから、サイトのプラグインのPHPを直接アクセスしてみて下さい。例えば (サイト名)/wp-content/plugins/yasakani-cache.php など。
通常ではお探しのページが見つかりませんなどと表示されるのが、代わりにアクセスが拒否されればエキスパートモードのPHPスクリプトゼロデイ攻撃の防御が働いているのがわかります
※WAF等でセキュリティ対策をしている場合は様子がかわるかも知れません
貴重な情報ありがとうございました
2018年4月12日 1:39 PM #6138Anonymousメンバー>おおー 良く調べましたね (^^)
私の仕事にとっても技術の勉強に大変なってます。(*^_^*)
“PHPスクリプトゼロデイ攻撃” をチェックした状態で
(1).user.iniを隠す(名前変更)と、見つかりませんエラーになって
(2).user.iniを戻すと、アクセス拒否エラーになります。ということで、enomotoさんの言われるように、エクスパートモードでyasakani-cache-exload.phpを実行していますね。
以上が良いお知らせで、付随して一つだけ悪いお知らせがあります。
ダイレクトアクセス拒否から除くphpを、yasakaniの設定画面で指定し直す必要があります。
現状(/wp-signup.php)
⇒変更(ドメインAのドキュメントルート/wp-signup.php)みたいにです。自動的に設定されるはずの /index.php、/wp-login.php も、同じくyasakaniの設定画面でドキュメントルート付きに設定し直すことができます。
ただ、ユーザー側でできないのは・・・
>以外のダイレクトアクセスをブロック(但し、ログインユーザによる /wp-admin 領域のPHPは除く)。
の括弧()内の部分でした。ログイン状態での操作のたびにログイン画面に戻ることになります。(その場合は.user.iniを隠して攻撃防御を一時的に止めれば大丈夫です)
スマートなのは、wordpressのドキュメントルートを取得して、ブロック除外のphpのパスにつけることでしょうか。それができる否か分からずに無責任に言っております。すみません。(*^_^*)
2018年4月12日 4:34 PM #6141enomotoキーマスターサイト名は除いて比較しているのですがおかしいですね
ダイレクトアクセス拒否から除くphpを、yasakaniの設定画面で指定し直す必要があります。
現状(/wp-signup.php)
⇒変更(ドメインAのドキュメントルート/wp-signup.php)みたいにです。自動的に設定されるはずの /index.php、/wp-login.php も、同じくyasakaniの設定画面でドキュメントルート付きに設定し直すことができます
wordpress 設定の一般にある WordPress アドレスとサイトアドレスのURLはどのような設定となっていますか?
リクエストされてきたURLからそこに設定しているURL部を除き、ダイレクトアクセス拒否から除外するPHPを照合しているのでドキュメントルート部は除外して問題ないはずなんですが
もしかしたら WordPress アドレスとサイトアドレスが違っている時に、比較すべきアドレスを取り違えてるのかも?
2018年4月14日 7:24 AM #6144Anonymousメンバーenomoto様
>サイト名は除いて比較しているのですがおかしいですね
こちらの勘違いだったようです。すみません。
ゼロデイ攻撃の防御を設定オンにした状態で、wordpressの管理画面を何か操作すると、ログイン画面にリダイレクトされるという不具合が発生したので、きっとドメインAのドキュメントルートが不足していると勝手に推測しておりました。
(^_^;)
除く判定の仕組みをお聞きして、こちらの勘違いと気がつきました。
不具合の様子をみていたのですが、今朝になってみると直っています?!このまましばらく観察してみます。
はじめ国際特許事務所 榎_はじめ
2018年4月14日 9:51 AM #6145enomotoキーマスターいえいえ、まだまだ利用者が少ないプラグインなのでいろいろなケースで不具合が残っているかもしれません。どのような情報でもありがたいです
wordpress 設定の一般の WordPress アドレスとサイトアドレスのURL が同じなら恐らく問題ないと思うのですが、異なっているときの処理がちょっと足りないかなという気がしています
異なるアドレスの場合のアクセスをいろいろ検証して、対策の必要有無を含め判断したいと考えています
-
投稿者投稿
- このトピックに返信するにはログインが必要です。