Windows環境で、Apache+PHPの環境を構築。
ずーっと、特に問題なく動いていた。
さて、PHPのバージョンをそろそろ7にあげておこうと思って、zipでダウンロードしてきて、解凍、インストール。
問題なく動いていた、、、ような気がしたのだけれど、
Wordpressのアップグレードが出来なくなってしまった。
何度やっても、下記のエラーが出る。
WordPress (ja) の翻訳を更新しています…
ダウンロードに失敗しました。 No working transports found
しばらくは、まぁローカルで動かしているだけだしいいや、と放置していたのだけれど
いい加減直しておこうと思って調べてみる。
このエラー、下記の設定を「php.ini」で有効にする事で解決したという意見が多い。
そこで同じようにやってみるのだけれど、エラーは解決せず。全くダメ。
phpinfo()をよくよく見てみると、curlもopensslも有効になってない!
色々調べてみて、症状は下記のサイトと全く同じなのだけれど、どうしてこのエラーが起きるのか分からない。
https://teratail.com/questions/27434
状況としては
・Apache2.4
・PHP7.1.2
だとだめ。
PHPのバージョンを5.6に戻すとcurlもopensslも問題なく動く(wordpressのアップグレードも問題なくできる)というもの。
PHP5.6に戻して動くのならWindowsのpathがおかしいとも考えられないし、、、どういうこと???
延々調べていたら
PHP7ではOpenSSL1.0.2以降のバージョンが要求されています。
という情報を発見。
apache/bin の下に「libeay32.dll」「ssleay32.dll」というファイルがあるのだけれど、これのバージョンが古い?ということらしい。
というわけで、OpenSSLの新バージョンをインストール。
公式にはソースしかないので、Windows版を配布しているサイトから持ってくる。
は「Win64 OpenSSL v1.0.2k」を選択してインストール後、インストールディレクトリの中から「libeay32.dll」「ssleay32.dll」のふたつを取り出して、
apache/bin/以下にある同名ファイルを置き換える。
Apache再起動したら、、、動いた!
というわけで、情報にたどり着くまで結構時間がかかっちゃったので、誰かの役に立ってほしいな、と言うことでメモ。