phpのopensslが有効にならない

php.iniにextension=php_openssl.dllを追加してもphpinfoでOpenSSL supportがdisabeldのまま。
他の拡張はこれだけで動くんだけどなーって4時間ぐらいはまりました。

解決法

OpenSSL support disabled in Apache/PHP on Windows - Stack Overflow

httpd.confに↓を追加します。

LoadFile "{phpのインストールパス}\libeay32.dll"
LoadFile "{phpのインストールパス}\ssleay32.dll"
LoadFile "{phpのインストールパス}\php5ts.dll"
LoadFile "{phpのインストールパス}\libpq.dll"

私の場合scoop経由でインストールしてたのでこうですね。

LoadFile "C:\Users\{ユーザー}\scoop\apps\php55\current\libeay32.dll"
LoadFile "C:\Users\{ユーザー}\scoop\apps\php55\current\ssleay32.dll"
LoadFile "C:\Users\{ユーザー}\scoop\apps\php55\current\php5ts.dll"
LoadFile "C:\Users\{ユーザー}\scoop\apps\php55\current\libpq.dll"

apacheを再起動してphpinfoを確認
f:id:qroku:20190418150121p:plain

OpenSSL supportがenabledに!!!

英語読めないマンなのでStackOverflowの記事読んでもC:/jampp/php/がどこのことかわからなくて(ググったらWin32 OpenSSLとか出てきて…)試せなかったんです。
1日置いて「もしかして…?」でファイル検索してみたらphpインストールフォルダにありました。
徒労感あるけどとりあえずうれしい!!!


以下試行錯誤した内容

環境
Windows10
scoop経由でphp7とphp5.5とapacheインストール
コマンドはPowerShellで実行

C:\Users\{ユーザー}\scoop\persist\php\cli\conf.d編集しても効いてないようだったのでC:\Users\{ユーザー}\scoop\apps\php55\current\php.iniを編集
※たぶんapacheの設定つまずいてhttpd.confのPHPIniDirに↑指定したから

;extension=php_openssl.dll
extension=php_openssl.dll

httpdしてphpinfoを確認してみる

PS > httpd

作っておいたphpinfoにアクセス f:id:qroku:20190418125037p:plain

pearのOpenSSLがdisabledのまま…

php -mしてみる

PS > php -m
[PHP Modules]
bcmath
calendar
Core
ctype
date
dom
ereg
filter
ftp
hash
iconv
json
libxml
mbstring
mcrypt
mhash
mysql
mysqlnd
odbc
openssl
pcre
PDO
pdo_mysql
Phar
Reflection
session
SimpleXML
SPL
standard
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]
Xdebug

opensslおるな…

php --ri opensslしてみる

PS > php --ri openssl

openssl

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.1t  3 May 2016
OpenSSL Header Version => OpenSSL 1.0.1t  3 May 2016

enabled? cliでは有効でwebだと無効?apacheの設定…? →最初に戻る