web-dev-qa-db-ja.com

Php 7.1 / Apache 2.4 / Windows-OpenSSLロードエラー

ローカルサーバーをphp7.1にアップグレードしたい。これを実行しようとすると、opensslを除いてすべてうまくいきます。

Php <= 5.30の場合、opensslは完全に機能しますが、php 7.1に切り替えると、opensslが無効になります。

同じ設定が他のphpバージョンでも機能するため、すべての設定(http.conf、php.ini)は問題ないと思います。

Php 7.1では、次のようなメッセージが表示されます。ラッパー「https」が見つかりません-PHPを構成したときに有効にするのを忘れましたか

WindowsフォルダーとApache/binフォルダーの両方にlibeay32.dll、ssleay32.dll、openssl.exeをコピーしようとしました。Windowsパスにphp dirを追加しようとしました。さまざまなページで読んだすべての方法を試しましたが、何も変わりません。

誰かが私を助けることができますか?

2
Pippo Fresta

私も同じ問題を抱えていました。だから私はそれらのファイルを私の「古い」PHP 5.6フォルダーからPHP(7.2)フォルダーに(またはあなたのためにWindowsフォルダーまたはあなたのどこにでも)コピーしましたパスは)です。ファイルは私のPHP 7.2インストール内で利用できませんでした。そしてそれは完璧に動作します。

1

私は同じ問題に遭遇し、なんとかそれを修正することができました。 DLLはファイル_libeay32.dll_と_ssleay32.dll_に依存していることがわかり、PHP7.1がVC14でコンパイルされていることが非互換性の問題である可能性があることがわかりました。PATHIを調べます。以下に示すように、ディレクトリC:\Program Files (x86)\Intel\iCLS Client\がファイルに古いバージョン(1.0.0.17)を提供する最初のディレクトリであることがわかりました(左はIntelのもの、右はPHPにバンドルされているもの)。

libeay32.dll properties

互換性エラーが発生してiCLSクライアントが破損する可能性があると考えましたが、リスクを冒して、これらのディレクトリをPHPディレクトリの下に移動しました。これにより(Apacheを再起動した後)問題が解決しました。

New PATH

1
Martijn Hols