web-dev-qa-db-ja.com

インストール失敗:ダウンロードに失敗しました。稼働中のトランスポートが見つかりません

'インストール失敗:ダウンロードに失敗しました。稼働中のトランスポートが見つかりません。

WordPressでテーマをインストールしようとしたときに、このエラーメッセージが表示されました。どうやってこの問題を解決しますか?

8
mss

WordPressサイトは、アップデートやインストールに問題があるサイトのダッシュボード部分を除いて、ほとんど問題なく機能していました。テーマをインストールしようとしたら、エラーが発生しました"インストールに失敗しました:ダウンロードに失敗しました。使用可能なトランスポートは見つかりません"

幸い、私は以下のsolutionで問題を解決しました。

結局のところ、このエラーメッセージは開発サーバにmissing missingがあるときに表示されるので、WordPressは外部HTTPリクエストをすることができません。

解決策はとても簡単です。これらのHTTPリクエストを可能にする欠けている拡張機能はWamp Serverと共に既にインストールされています。デフォルトでは、それらは単に無効にされています。それらを有効にするには、php.ini設定ファイルを編集しますが必要です。

php.iniファイルの編集

Php.iniファイルには多くの拡張子のリストが含まれており、そのうちのいくつかはデフォルトで無効になっています。私が有効にしなければならなかった唯一のものは openssl拡張子。 でした

この拡張機能を有効にする手順は次のとおりです。

  1. Wamp Serverを起動します。
  2. wamp Server IconをクリックしてPHP-> php.iniオプションに進みます。
  3. php.iniをダブルクリックします。そのため、デフォルトのテキストエディタでphp.iniファイルが開きます。
  4. php.iniファイルでphp_openssl.dllを検索してください。 - >拡張子がコメントアウトされているのがわかります。; extension = php_openssl.dll
  5. セミコロン(;)を削除してその行のコメントを外します。
  6. 変更を保存してください。
  7. Wamp Serverを再起動してください。

これで終わりです。

WordPress HTTP API は可能な限り多くのサーバー上で動作するように構築されており、そうするためにさまざまな方法(トランスポート)を試しています。

エラーメッセージによると、正常に機能しているトランスポートがないため、WordPressはHTTP要求を送信できません。

Core Control WordPressプラグインのようなものをインストールすることをお勧めします。これにより、既存のすべてのHTTPトランスポートをデバッグできます。 1つのトランスポートが機能していない間に、別のトランスポートで問題ない可能性があります。このプラグインを使用すると、壊れたプラグインを無効にして新しいトランスポートでHTTP APIをテストできます。

実際にどのトランスポートも機能していないことが判明した場合は、PHPでHTTPリクエストを送信できるように、少なくともcURLなどをサーバーにインストールするようにホスティングプロバイダに連絡してください。

3
swissspidy

このエラーメッセージに関するアドバイスは非常に多様であり、誰もが包括的な答えを提供するようには思われません( あるブログ明白な答え および here および here を参照)。うまくいけば、これは問題のより正式な見方です。

私はApache経由で提供されているPHP上のWordPressのみを検討します(私はPHPで試したことがないので、現時点ではNginXについてコメントできませんし、他のフレームワークについてもコメントできません)。その答えは、自動構築されたApache 2.4.37、抽出されたスレッドセーフPHP 7.2、およびWordPress 4.2.Xを使用して、Windows 10に向けて穏やかな偏見を示すことがあります。

バックグラウンド

PHPとcURL は、WordPressがRequestscURL、およびfSocketsライブラリのラッパーに依存していることをわかりやすく説明しています。 。 Requestsは利用可能ならcURLライブラリを好みますが、おそらくPlugins/Themes/etcをダウンロードするためにfSocketsライブラリにフォールバックするでしょう。 "No transports"エラーは、どちらのライブラリもApacheまたはPHP内で正しく設定されていないことを示しています。ファイアウォールがプロセスに干渉している可能性もあります。

チェック

Apacheの設定とPHPの設定をテストし、ブラウザから標準の PHPinfo スクリプトを設定してロードします。これにはcURLというタイトルの別のセクションがあり、そのエントリにはさまざまな情報が表示されます。それ以外の場合は、次のスクリプトをセットアップしてロードして確認します。

<?php
echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';
?>

fScoketsのテスト方法がわかりません。

cURL

cURLを確実に使用可能にするには、php.ini内で有効にする必要があるようです。

  • extentions_dirが「ones」拡張フォルダを正しく指していることを確認してください。

    extentions_dir="ext"

    (あるいは、extentions_dir="D:PATH/TO/php/ext"が推奨されることもよくあります)

  • cURL拡張が有効になっていることを確認してください

    extension=curl

    (おそらくPHP <7.2の場合、extentions=php_curl(.so|.dll)またはextentions="PATH/TO/php_curl(.so|.dll)"も推奨されます)

  • _ php _ から、eay32ssh2、およびssleay32の各ライブラリも1パスで使用できる必要があるようです(OpenSSL 1.1ではeay32crypto-*に変更され、ssleay32ssl-*に変更されました)。 Windowsでは、これらのライブラリをPHPルートフォルダからsystem32またはwow64フォルダにコピーすることが厄介です。より良い解決策は、PHPルートフォルダを含めるようにパス変数を変更することです(個人的には、必要に応じて構成するクリーンパスをお勧めしますが、これはPHPです)。 * nixボックスでは、ディストリビューション用にphp5-curlパッケージをインストールするだけでよいようです。

    注意: _ php _ ページへのコメントは、単にLoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll"エントリをhttpd.confに追加することを提案していますが、cURLは1つのパスでこれらのライブラリを検索するようです。提案を議論する。 XAmpp/Wampの人々は、自分のルートを自分のシステムパスにダンプしているように見えるので、このステップをやめました。

完了したら、Apacheを再起動してください。 Apacheモニターを使用している場合は、実際にApacheを停止してから起動する必要があります。これにより、サービスを実行するための新しい環境が設定されます(再起動の節約)。

fソケット

これを実現するために何が必要かわからない。

0
Carel