web-dev-qa-db-ja.com

更新要求に関する「予期しないエラー」

それはwordpress.orgへの接続性を必要とし、タイムアウトしています。私は企業のファイアウォールの内側にいます。私は以前のバージョンでこの問題が起きたことは一度もありません。 themes.phpがwordpress.orgにアクセスする必要があるのはなぜですか。また、それができるのではないのでしょうか(またはおそらく私のプロキシ設定を使用できるようにするための何か)。

エラーメッセージに追加する:

PHPの警告:予期しないエラーが発生しました。 WordPress.orgまたはこのサーバーの設定に問題がある可能性があります。それでも問題が解決しない場合は、サポートフォーラムを試してください。 (WordPressはWordPress.orgへの安全な接続を確立できませんでした。サーバー管理者に連絡してください。)

これは3.7の新機能です。 3.6.1は4〜5回インストールされていて問題ありません。彼らが彼らのテーマを変えることができなかったら私は人々に私の頭を切り刻ませるでしょう。

更新: 3.8は多くの大きな問題を修正しました。ただし、プラグインの検索、テーマの検索、ダッシュボードフィードの取得、取得はできません。誰かがこれらに対する解決策を持っているならば - たとえそれがプロキシサーバーのための提案であっても、それは役に立ちます。

7
STing

一般的にWP adminをナビゲートすると、ニュースフィードの取得やテーマ/プラグインの更新など、複数の外部要求が発生する傾向があります(プラグイン/テーマが自分で行っている可能性があるものはカウントしません)。

外部の要求を完全にまたは部分的にブロックするために、設定定数をwp-config.phpに入れることができます。

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

または、プロキシ設定を使用するように外部要求を設定します。

define('WP_PROXY_Host', '192.168.84.101');
define('WP_PROXY_PORT', '8080');
define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com, *.wordpress.org');

認証用にWP_PROXY_USERNAMEWP_PROXY_PASSWORDを追加してください。

8
Rarst

これはWordPressのHTTP APIの変更に伴う問題です。 cURLと完全な互換性はなくなりました。
どうして まさに それが起こるのかわかりませんが(このエラーが発生したときには、コンテキスト情報はありません)、一時的な修正を加えることができます。

プラグインで、またはあなたのwp-config.phpの最後に、以下の行を追加してください:

add_filter( 'http_api_transports', function()
{
    return array( 'streams' );
});

これにより、cURLが無効になり、サーバー上の他のコンポーネントに影響を与えることなくエラーメッセージが消えます。


完全を期すために、ここに私の現在のcURLの詳細:

$ curl --version
curl 7.26.0 (i686-pc-mingw32) libcurl/7.26.0 OpenSSL/0.9.8x zlib/1.2.7
Protocols: dict file ftp ftps Gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tf
tp
Features: GSS-Negotiate Largefile NTLM SSL SSPI libz
2
fuxia

タイムアウトはありませんでしたが、 https://api.wordpress.org リクエストで企業ファイアウォールから500 handshakefailedエラーが発生していました。私のUbuntu 12.04システムで、php5-curlのインストールに失敗したことを発見しました。インストールしてApache2を再起動すると、問題は解決しました。

1
Dan Halbert

あなたの場合、それはネットワークの問題だけかもしれません。しかし、私は同じ警告で問題を抱えていたので(いくつかの理由があるかもしれませんが、当てはまるかもしれません)、ローカルホスト上ではあるが解決策Wordpress内 を見つけました。彼らは、エラーメッセージで参照されているファイルを同じWordpressバージョンのフレッシュインストールからの同じファイルで置き換えることを提案しました(そのバージョンの.Zipファイルをダウンロードし、問題のファイルを解凍してコピーしてください)。

私の場合は(path-to-wordpress)/wp-include/update.php、あなたの場合は(path-to-wordpress)/wp-admin/include/theme.phpになります。私が問題を理解しているように、安全な接続の確立が処理されるファイルのいくつかの部分は更新中に壊れてしまいました。

0
Pavel V.