'インストール失敗:ダウンロードに失敗しました。稼働中のトランスポートが見つかりません。
WordPressでテーマをインストールしようとしたときに、このエラーメッセージが表示されました。どうやってこの問題を解決しますか?
WordPressサイトは、アップデートやインストールに問題があるサイトのダッシュボード部分を除いて、ほとんど問題なく機能していました。テーマをインストールしようとしたら、エラーが発生しました"インストールに失敗しました:ダウンロードに失敗しました。使用可能なトランスポートは見つかりません"
幸い、私は以下のsolutionで問題を解決しました。
結局のところ、このエラーメッセージは開発サーバにmissing missingがあるときに表示されるので、WordPressは外部HTTPリクエストをすることができません。
解決策はとても簡単です。これらのHTTPリクエストを可能にする欠けている拡張機能はWamp Serverと共に既にインストールされています。デフォルトでは、それらは単に無効にされています。それらを有効にするには、php.ini設定ファイルを編集しますが必要です。
php.iniファイルの編集
Php.iniファイルには多くの拡張子のリストが含まれており、そのうちのいくつかはデフォルトで無効になっています。私が有効にしなければならなかった唯一のものは openssl拡張子。 でした
この拡張機能を有効にする手順は次のとおりです。
これで終わりです。
WordPress HTTP API は可能な限り多くのサーバー上で動作するように構築されており、そうするためにさまざまな方法(トランスポート)を試しています。
エラーメッセージによると、正常に機能しているトランスポートがないため、WordPressはHTTP要求を送信できません。
Core Control WordPressプラグインのようなものをインストールすることをお勧めします。これにより、既存のすべてのHTTPトランスポートをデバッグできます。 1つのトランスポートが機能していない間に、別のトランスポートで問題ない可能性があります。このプラグインを使用すると、壊れたプラグインを無効にして新しいトランスポートでHTTP APIをテストできます。
実際にどのトランスポートも機能していないことが判明した場合は、PHPでHTTPリクエストを送信できるように、少なくともcURLなどをサーバーにインストールするようにホスティングプロバイダに連絡してください。
このエラーメッセージに関するアドバイスは非常に多様であり、誰もが包括的な答えを提供するようには思われません( あるブログ 、 明白な答え および here および here を参照)。うまくいけば、これは問題のより正式な見方です。
私はApache経由で提供されているPHP上のWordPressのみを検討します(私はPHPで試したことがないので、現時点ではNginXについてコメントできませんし、他のフレームワークについてもコメントできません)。その答えは、自動構築されたApache 2.4.37、抽出されたスレッドセーフPHP 7.2、およびWordPress 4.2.Xを使用して、Windows 10に向けて穏やかな偏見を示すことがあります。
PHPとcURL は、WordPressがRequests
、cURL
、および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
を確実に使用可能にするには、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 _ から、eay32
、ssh2
、およびssleay32
の各ライブラリも1パスで使用できる必要があるようです(OpenSSL 1.1ではeay32
はcrypto-*
に変更され、ssleay32
はssl-*
に変更されました)。 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を停止してから起動する必要があります。これにより、サービスを実行するための新しい環境が設定されます(再起動の節約)。
これを実現するために何が必要かわからない。