オープンソースのブログ/CMS プラットフォーム「WordPress」の日本語版(4.1)をインストール後、「WordPress」の管理画面上に「予期しないエラーが発生しました。
WordPress.org かこのサーバーの設定に何か問題があるかもしれません。」という警告メッセージが表示され続ける場合の回避方法について覚書。
WordPressの管理画面に表示されるメッセージについて
WordPressインストール後に管理画面に以下の警告メッセージが複数表示され続ける状態となった。
「予期しないエラーが発生しました。WordPress.org かこのサーバーの設定に何か問題があるかもしれません。
C:¥xampphtdocswordpresswp-includesupdate.php on line XXX」
※XXXは、行番号
警告メッセージが表示される原因について
この警告メッセージが表示される原因としては、以下の2つと思われる。
どちらか1つの原因によりこの警告メッセージが表示される場合もあるし、2つが原因となっている場合があるようなので、発生している(WordPressをインストールした)環境を確認した上で各回避方法を行って欲しい。
原因1:プロキシサーバーを経由してインターネット接続をしている場合
WordPressをインストールした環境がインターネット接続する際にプロキシサーバーを通して接続するような環境だと発生する場合がある。
プロキシサーバーを通してインターネット接続している環境にWordPressをインストールした場合には、WordPressのコンフィグファイルにプロキシサーバーの設定が必要となる。
WordPressのコンフィグファイルにプロキシサーバーの設定を行う方法
プロキシサーバーを通してインターネット接続している環境にWordPressをインストールした場合のWordPressのコンフィグファイルの設定手順は以下のとおり。
WordPressをインストールしたフォルダ配下の「wp-config.php」ファイルをテキストエディタで開く。
以下の3行を探す。
なければ新たに追加する。
define('WP_PROXY_HOST', '');
define('WP_PROXY_PORT', '');
define('WP_USEPROXY', 'TRUE');
※追加する場合の追加場所は最終行でよい。
プロキシサーバーの情報を設定する。
※プロキシサーバーの接続に認証(ユーザー名とパスワード)が必要な場合と必要でない場合と設定文字列が異なることに注意
以下に認証有りと無しの場合のそれぞれの設定文字列サンプルを記載する。
プロキシサーバーのURLが"http://proxy.hoge.co.jp"、ポート番号が8080、ユーザー名がuser1、user1のパスワードがpasswordとして場合を例として記載する。
認証有りの場合
define('WP_PROXY_HOST', 'http://user1:password@proxy.hoge.co.jp');
define('WP_PROXY_PORT', '8080');
define('WP_USEPROXY', 'TRUE');
要は、define('WP_PROXY_HOST', 'http://ユーザー名:パスワード@プロキシURL'); という設定文字列となる。
認証無しの場合
define('WP_PROXY_HOST', 'http://proxy.hoge.co.jp');
define('WP_PROXY_PORT', '8080');
define('WP_USEPROXY', 'TRUE');
設定したら「wp-config.php」を上書き保存して閉じる。
次にWordPressをインストールしたフォルダ配下の「wp-includes」フォルダに保存されている「class-snoopy.php」ファイルをテキストエディタで開く。
以下の2行を変更する。
※46、47行目あたり
[変更前]
var $proxy_host = ""; // proxy host to use
var $proxy_port = ""; // proxy port to use
[変更後]
var $proxy_host = WP_PROXY_HOST; // proxy host to use
var $proxy_port = WP_PROXY_PORT; // proxy port to use
次に以下の1行を変更する。
※117行目あたり
[変更前]
var $_isproxy = false; // set if using a proxy server
[変更後]
var $_isproxy = WP_USEPROXY; // set if using a proxy server
以上でプロキシサーバーの設定は終了。
会社ではプロキシサーバーを通してインターネット接続することが普通なので会社の環境にインストールした場合などは必ず設定が必要。
原因2:強制的にhttps(SSL)接続に変換しているコードにより発生する場合
どうやらFTP接続関連でSSL無しのサーバーに対しても強制的にSSL接続しに行くようになっているためにこの警告メッセージが表示されるようです。
対処としては、SSL接続に強制的に変換しているコード(wp-includes/update.php)をコメントアウトして処理をパスさせれば良いだけです。
udpate.phpのコード変更方法
以下にSSL接続に強制的に変換しているコードを実行している「update.php」ファイルの変更方法を記載します。
WordPressをインストールしたフォルダ配下のwp-includesフォルダにある「update.php」ファイルをテキストエディタで開く。
以下の2行を見つけてコメントアウト(行頭に//を付加)する。
※同様の行が3箇所あるのですべて同様に変更する。
if分が"{"で囲まれていない場合(WordPressの古いバージョン)
[変更前]
if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
$url = set_url_scheme( $url, 'https' );
[変更後]
// if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
// $url = set_url_scheme( $url, 'https' );
if分が"{"で囲まれている場合
[変更前]
if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
$url = set_url_scheme( $url, 'https' );
}
[変更後]
//if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
//$url = set_url_scheme( $url, 'https' );
//}
以上でコードの変更作業は終了です。
まとめ
WordPressインストール後に以下の警告メッセージ表示される場合があります。
「Warning: 予期しないエラーが発生しました。WordPress.org かこのサーバーの設定に何か問題があるかもしれません。・・・」
「update.php on line XXX」
上記のようなメッセージが出た場合は、以下の2つの対処を行ってみてください。
- プロキシサーバーを使用してインターネット接続している環境の場合はプロキシサーバーに関する設定を確認する。
- 強制SSL接続処理のコードをコメントアウトして処理をパスさせる。
コメント