
WordPressのキャッシュ系プラグインは、よくサイトを高速化するために入れておいたほうがいいよ!などと言われていたり書かれていたりするんですが、環境により有効化できなかったり削除できなくなったりと問題も結構報告されているんですよね。
よく分からずに安易に手を出すのは危険で、自分も有効化も削除も出来ないという状態に陥り、解決ができましたのでその自分が行った方法を記載します。
目次
そもそもキャッシュとは?
「キャッシュ」とは、動的に生成されるページを予め静的ページで用意しておく事で、どこまで静的に用意しておく(キャッシュしておく)かはプラグインによって異なりますが、「WP Super Cache」や「W3 Total Cache」はWordPressが行う処理すべてをキャッシュします。
有効化も削除もできなくなった!?
昔に「WP Super Cache」をインストールしてみたものの、他のプラグインとの兼ね合いからか有効化しようとするとエラーが出てできず、そのまま放置してしまっていたんですよね。プラグインの見直しを行おうと思い、使えないなら削除を試みようとするもエラーが出てできずという状態に陥っていました。
以前にWordPressの更新失敗で画面が真っ白になったのもこのプラグインの影響があった可能性があるため、どうにか解決する必要がありました。
有効化しようとしたときに出るエラー
警告! Could not update (wpのインストールディレクトリ)/wp-config.php! WPCACHEHOME must be set in config file.
警告! (wpのインストールディレクトリ)/wp-content/advanced-cache.php がないか、更新できません。
「wp-config.php」は、WordPressの設定ファイルでありこのファイルが更新できません!というエラーですね。ファイルが更新できないということは、ファイルのパーミッション(権限)を確認する必要がありますね。
「wp-config.php」のファイルのパーミッションはセキュリティの観点から「400」にしていましたため、FTP上で「644」にして一旦書き込み権限を与え、この状態でプラグインを有効化すると有効化できますね。
削除しようとしたときに出るエラー
削除と書いていましたが、実際には削除の前の「停止」(自分は有効化できていないので停止中状態ですが。)をしようとしたときに出たエラーです。
Could not remove WP_CACHE define from (wpのインストールディレクトリ)/wp-config.php. Please edit that file and remove the line containing the text ‘WP_CACHE’. Then refresh this page.
上記のエラーが出たのは、「wp-config.php」に以下の記述が残っておりまた上記同様に「wp-config.php」の書き込み権限がないからでしょうね。
/** WP Super Cache */ define('WP_CACHE', true);
WP Super Cacheの正しい削除方法
どうやら、正しい削除方法があるようでしたので以下のファイルの内容を確認して手順通りに試してみることにしました!
上記のテキストファイルの中身を確認すると、削除手順は以下との記述がありました。
To manually uninstall:
1. Turn off caching on the plugin settings page and clear the cache.
2. Deactivate the plugin on the plugins page.
3. Remove the WP_CACHE define from wp-config.php. It looks like `define( ‘WP_CACHE’, true );`
4. Remove the Super Cache mod_rewrite rules from your .htaccess file.
5. Remove the files wp-content/advanced-cache.php and wp-content/wp-cache-config.php
6. Remove the directory wp-content/cache/
7. Remove the directory wp-super-cache from your plugins directory.
これを、手順通りに行ってみます。
1. Turn off caching on the plugin settings page and clear the cache.
プラグインの設定ページでキャッシュを停止させ、キャッシュを削除せよという意味合いですね。
プラグインの設定画面で、「キャッシングの停止」を選択して、「ステータスを更新」ボタンを押下すればキャッシングが停止できます。(自分の場合はすでにキャッシングの停止状態でしたが。)
また、キャッシュされているページの削除の「キャッシュを削除」ボタンを押下すればキャッシュが削除できます。
自分の場合はもともとキャッシュしていなかったこともあり、上記操作では以下の画面表示になりました。
「コンテンツ」タブに何も表示されていないかつエラーも出てはいますが、このエラーは有効化したいときに解消すべきエラーとは見られ、自分は削除したいため特に気にせずに作業を進めました。
2. Deactivate the plugin on the plugins page.
プラグイン「WP Super Cache」を停止させればいいということですね。
管理画面の左メニューの「プラグイン」⇒「インストール済みプラグイン」から「WP Super Cache」を探して「停止」させました。
3. Remove the WP_CACHE define from wp-config.php. It looks like `define( ‘WP_CACHE’, true );`
「wp-config.php」に含まれるWP_CACHEで定義された箇所を削除せよということですね。
「wp-config.php」は上記のパスにありますので、FTPクライアントを用いてファイルを直接編集することにしました。
/** WP Super Cache */ define('WP_CACHE', true); //Added by WP-Cache Manager
上記の「WP Super Cache」に関わる記述が見られたため、これを削除しました。
自分はうまく有効化できていなかったために上記の記述のみでしたが、有効化できている方は以下の記述もあると思われるので、削除対象になります。
define( ‘WPCACHEHOME’, ‘…/wp-content/plugins/wp-super-cache/’ ); //Added by WP-Cache Manager
4. Remove the Super Cache mod_rewrite rules from your .htaccess file.
「.htaccess」に含まれるWP_CACHEで定義された箇所を削除せよということですね。
上記ファイルパスより「.htaccess」のファイルの記述内容を確認しましたが、「WP Super Cache」に関連すると見られる記述はありませんでした。
# BEGIN WPSuperCache # END WPSuperCache
環境により異なると見られますが、ある場合は上記で囲まれた記述があるようなので、その記述を削除すればいいですね。
5. Remove the files wp-content/advanced-cache.php and wp-content/wp-cache-config.php
「wp-content」配下の「advanced-cache.php」、「wp-cache-config.php」を削除せよということですね。
上記ファイルはありましたので、削除しました。
6. Remove the directory wp-content/cache/
「wp-content」配下にある「cache」フォルダを削除せよということですね。
このフォルダもありましたので、削除しました。
7. Remove the directory wp-super-cache from your plugins directory.
プラグインフォルダ内の「wp-super-cache」フォルダを削除するということですね。
最後に上記のフォルダを削除することにより「wp-super-cache」プラグインの削除が完了となります!
WordPressの動作には何も問題がなかったので安心しました~。
ちなみに、管理画面の左メニューの「プラグイン」⇒「インストール済みプラグイン」から「WP Super Cache」を探して「削除」ではないために、以下の注意文が出ますが、特に問題はありません。(削除後に1回目に「インストール済みプラグイン」を開いたときにしか出ません。)
何らかの失敗によりサイトが壊れてしまった場合の対処法
「readme.txt」に「WP Super Cache」関連でうまくいかないことによりサイトが壊れてしまった場合の対処法も書いてありましたのでこちらについても解説します。
== If all else fails and your site is broken ==
1. Remove the WP_CACHE define from wp-config.php. It looks like `define( ‘WP_CACHE’, true );`
2. Remove the rules (see above) that the plugin wrote to the .htaccess file in your root directory.
3. Delete the wp-super-cache folder in the plugins folder.
4. Optionally delete advanced-cache.php, wp-cache-config.php and the cache folder in wp-content/.
1. Remove the WP_CACHE define from wp-config.php. It looks like `define( ‘WP_CACHE’, true );`
「wp-config.php」に含まれるWP_CACHEで定義された箇所を削除せよということですね。
上記で説明した手順で行えば問題ないですね。
2. Remove the rules (see above) that the plugin wrote to the .htaccess file in your root directory.
「.htaccess」に含まれる「WP Super Cache」によって書かれたルールを削除するということですね。
こちらも上記で説明した手順で行えば問題ないですね。
3. Delete the wp-super-cache folder in the plugins folder.
プラグインフォルダ内の「wp-super-cache」フォルダを削除するということですね。
これに関しても上記で説明した手順で行えば問題ないですね。
4. Optionally delete advanced-cache.php, wp-cache-config.php and the cache folder in wp-content/.
必要に応じて「wp-content」配下の「advanced-cache.php」、「wp-cache-config.php」を削除するということですね。
日本語に訳した「必要に応じて」というのがちょっと引っかかりますが、上記の作業まで行ったときに一旦サイトの状態を確認して、ダメなら上記のファイルも削除してみるでいいでしょうね。
上記の一連の作業で分かることは「WP Super Cache」に関連するファイルを削除すればサイトが復旧できる可能性があるということですね。
あとがき
ちょっとヒヤヒヤする作業でしたが、問題なく削除できてよかったです。
正しい削除にこんなに手間(及び技術)がかかるため、改めて初心者向けではないなと思いましたね。