无法找到SSL套接字传输,PECL包无法访问的问题求助
问题解决指南
一、先搞定OpenSSL Socket传输报错
- 检查你的
C:\php目录里有没有libcrypto-1_1-x64.dll和libssl-1_1-x64.dll这俩文件——PHP 8.0依赖OpenSSL 1.1版本的库,要是没有,直接下载对应版本的PHP压缩包(注意要和你当前PHP的线程安全/非线程安全版本匹配,用php -v能看到TS/NTS标记),解压后把这两个dll复制到C:\php里。 - 打开
php.ini确认extension_dir设置正确,比如extension_dir = "ext"(如果ext文件夹就在C:\php下),别用错路径,不然扩展加载不起来。 - 重启PHP内置服务器,然后在命令行敲
php -m,看看输出里有没有openssl,确认扩展真的加载成功了。
二、不用装编译工具,直接用预编译扩展包
Windows下绝大多数常用的PECL包都有现成编译好的dll,完全不用折腾Embarcadero C++、MinGW这些东西,步骤很简单:
- 找和你PHP版本(8.0.12)、系统位数(64位)、线程安全/非线程安全匹配的预编译扩展包。
- 比如装memcache,下载对应的
php_memcache.dll,扔到C:\php\ext目录里,然后在php.ini里加一行extension=memcache,重启服务器就行(注意别和memcached搞混,俩是不同扩展)。 - 要是装oci扩展,得先装对应64位的Oracle Instant Client,把它的路径加到系统环境变量里,再下载匹配PHP版本的oci8扩展dll,放到ext目录,在php.ini里启用
extension=oci8,注意Oracle客户端版本要和PHP兼容。
三、关于PECL的额外说明
要是你非得用PECL命令下载安装,那确实得搭编译环境,但Windows下这个过程巨麻烦,普通用户完全没必要,用预编译dll既快又省心,完全能满足你装memcache、oci这类扩展的需求。
内容的提问来源于stack exchange,提问作者Maestro
相关产品推荐
相关产品推荐

