[解決済み] PHPがphp_curl.dll拡張モジュールを読み込むことができない
質問
昨日の記事のフォローアップ( PHPでcURLを使えるようにする )
問題は、PHPがphp_curl.dllをロードできていないことです。 いくつかのステップを試してみました。
extension=php_curl.dll
を確認し、依存関係のある
libeay32.dll
と
ssleay32.dll
php_curl.dllを再ダウンロードして、古いものを置き換え、最後にそのファイルをSystem32フォルダにコピーして、パスにeixstを追加してください。
Apache 2.2とPHP 5.4.14を使用しています。 XAMPやWAMPは使用せず、それぞれのパッケージでインストールしました。 Windows 7 64bitを使用しています。
どんなことでもご相談ください。
解決方法は?
libeay32.dll
と
ssleay32.dll
にはパスアクセス可能でなければならない。
php_curl.dll
の読み込みに成功する。
しかし、それらをコピーして、Apache の
ServerRoot
の場合、Apacheの
\bin\
ウィンドウズ
\System32\
を Windows のメインディレクトリにコピーすることは、 悪いハックであり、新しいバージョンの PHP でさえ動作しないかもしれません。
正しい方法は、PHP のパスを Windows の
Path
変数を使用します。
-
で
Control Panel -> System
クリック システムの詳細設定 を押すか WIN + R と入力します。SystemPropertiesAdvanced
- ボタンをクリックする 環境変数 .
-
下
システム変数
を見つけることができます。
Path
という変数があります。それを編集して、先頭にC:\PHP;
を追加し、PHP フォルダへのパスを指定します。
(ヒント:PHPフォルダにC:\Program Files\PHP
のように、短いファイル名を使う必要があるかもしれません。C:\Progra~1\PHP
.) - それから Apache を完全に停止して、もう一度起動してください (単純な再起動では十分ではないかもしれません)。
2017-05に更新しました。
上記の指示を変更し
前置詞
の代わりに、PHPのパスをPath変数に設定します。
追加
を追加します。これにより、PHP のパスにある DLL が使用され、システムの他のパスにある他の (古い) バージョンの DLL は使用されないことが確認されます。
2018-04にアップデートしました。
をお持ちの方は
すでに
を誤って選択し、PHP DLL を Apache または Windows のパスにコピーしてしまった場合は、 それらを再度削除することを強く推奨します! そうしないと、後でPHPをアップデートしようとしたときに問題が発生する可能性があります。新しいPHPのバージョンがこれらのDLLの新しいバージョンを持ってきても、古いDLLがシステムやウェブサーバーのパスにまだ残っている場合、これらの古いDLLが最初に見つかるかもしれません。この場合、PHPインタプリタが起動できなくなることは間違いありません。このようなエラーは、理解し解決するのが非常に困難です。そのため、よりよいクリーンアップ
今
をコピーし、WindowsやApacheのパスから上記のDLLを削除してください。
(コメントでこの問題を指摘してくれた @EdmundTam と @WasimA. に感謝します!)
2019-10にアップデートしました。
ヒント:これらのDLLのすべてのコピーを見つけ、間違ったフォルダーに配置した可能性があるかどうかを確認するには、Windowsのコマンドプロンプトウィンドウで次のコマンドを使用します。
dir c:\libeay32.dll /s
dir c:\ssleay32.dll /s
これらのコマンドは、システムドライブC:のディレクトリ構造全体を検索するため、完了までに時間がかかることがありますので、ご注意ください。
2020-08にアップデートしました。
PHPのフォルダにスペースが含まれている場合(例.
C:\Program Files\PHP
) の中で短いファイル名形式を使用する必要があるかもしれません。
Path
変数に追加します(例.
C:\Progra~1\PHP
). このヒントをくれた@oneeに感謝します!
関連
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] 致命的なエラーです。mysqli_result 型のオブジェクトを使用できません [終了] 。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】XAMPPのphpMyAdminで「設定にあるcontroluserの接続に失敗しました。
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み] PHPの配列を別の配列にコピーする関数はありますか?
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて
-
[解決済み] PHPのcURLが動作しない - Windows 7 64bit上のWAMP