「MAMP PRO Windows版はPHPのバージョンが異なるサイトを同時に確認できます」と「MAMP PROでWordPressなどのCMSを動かせるように設定して検証する」で2回にわたってMAMP PRO Windows版について書きました。WordPressを使う場合にサイトの言語で問題があったので、確かめていたのですがそれとは別にプラグインがインストールできないという問題が発生しました。
その状況と原因と対応方法について書きます。
追記:2016/01/07 WordPressが4.4にアップデートされてから(だと思いますが)一切この問題は出なくなりました(^_^;。WordPressのアップデートのおかげかそれとも私の環境のなんらかの影響かがわからないのですが、現状は全く問題ありません。
プラグインの新規追加でエラー。インストールできなかった
プラグインの新規追加でエラーが起こってインストールできなかった状況です。
ダッシュボード プラグイン>新規追加 で普通に
今すぐインストール をクリックします。
順調に進んでるように見えたのですが、
パッケージをインストールできませんでした。有効なプラグインが見つかりませんでした。プラグインのインストールに失敗しました。
と、なってしまいインストールできませんでした。
このMAMPで動かしているWordPressサイトはもともとXAMPPで動かしていたので、XAMPPに切り替えて確認してみました。
MAMPをストップしてから、XAMPPを立ち上げ、同じサイトを表示して、
今すぐインストール をクリックします。
普通にインストールできました。うーん?
ソースをたどって原因はわかりました
エラーメッセージ パッケージをインストールできませんでした。有効なプラグインが見つかりませんでした。 からソースをたどってこのエラーの原因が分かりました。
C:\xampp54\htdocs\wordpress\wp-admin\includes\class-wp-upgrader.php
にそのメッセージを表示している部分がありました。
if ( ! $plugins_found ) return new WP_Error( 'incompatible_archive_no_plugins', $this->strings['incompatible_archive'], __( 'No valid plugins were found.' ) );
ここでエラーになっています。エラーの原因は、その上に記述してある
$files = glob( $working_directory . '*.php' ); if ( $files ) { foreach ( $files as $file ) { $info = get_plugin_data( $file, false, false ); if ( ! empty( $info['Name'] ) ) { $plugins_found = true; break; } } }
で指定されたプラグインの存在チェックをしているのですが、MAMP PRO Windows版で
$files = glob( $working_directory . '*.php' );
このように、パス名を取得している部分の $files の内容を表示してみると
array(0) {
}
と、なにも入っていません。同じ箇所をXAMPPで動かしている状態で確認すると、
array(3) {
[0]=>
string(93) “C:\xampp54\htdocs\wordpress/wp-content/upgrade/contact-form-7.4.3/contact-form-7/settings.php”
[1]=>
string(94) “C:\xampp54\htdocs\wordpress/wp-content/upgrade/contact-form-7.4.3/contact-form-7/uninstall.php”
[2]=>
string(102) “C:\xampp54\htdocs\wordpress/wp-content/upgrade/contact-form-7.4.3/contact-form-7/wp-contact-form-7.php”
}
ちゃんと中身が入っていました。
なるほど。。ググって調べてみるとどうやらWindowsではglobがうまく動かないという情報があり、それが原因なのではと思いました。XAMPPでblogがうまく動いているのは、きっとうまく動くように何かしている(推測)のではないかと思います。
ここでもUser Contributed Notesにいくつか報告がありました。
また、PHPでglobを使わない方法は分かったのですが、wp-adminはコアの部分なので修正して良い場所ではありません(>_<)、なので修正することもできません。
MAMP PRO Windows版でプラグインをインストールをするための現実的な対処方法
ということでとりあえず MAMP PRO Windows版 でプラグインをインストールをするための現実的な対処方法を考えました。
プラグインをインストールする画面の、詳細情報 をクリック
プラグインに関する詳細情報がポップアップされます。WordPress.orgプラグインページ をクリック
そのプラグインのページになります。Download Version 4.0.8 (バージョンはプラグインにより異なります) をクリックしてローカルPCの適当なところにzipファイルを保存します。
保存したzipファイルを解凍します。
そのプラグインのフォルダができるので、使っているWordPressのPluginsフォルダに置きます。
この場合は C:\xampp54\htdocs\wordpress\wp-content\plugins
にフォルダを置きました。
ダッシュボードの
プラグイン>インストール済みプラグイン をクリックすると
今解凍してフォルダを置いたプラグインが インストール済みプラグイン となっていることがわかります。有効化 をクリックすると、
利用できるようになります。
globに関しては他にも問題が起こる可能性があります
今確認中のサイトのソース内で glob( を検索すると7カ所使われていることが分かりました。
1カ所はCrayon Syntax Highlighterというプラグインで、他はWordPressのコア部分です。また何か問題が起こったらこれらが原因かも?と思って対処できれば対処したいと思います。
XAMPPではうまくglobが動いているので、きっとそのうちMAMP PRO Windows版もglobが使えるようになるようなバージョンアップがあるのではと期待しています。
[amazon_searchlink search=”WordPress プラグイン”]
コメント