You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目已在php.ini启用OpenSSL仍无效 求助排查

解决PHP 8.2中OpenSSL扩展启用后仍显示禁用的问题

问题描述

搭建Laravel项目时,已在php.ini中启用OpenSSL扩展,但执行php -i | grep openssl仍输出:

OpenSSL support => disabled (install ext/openssl)
OLDPWD => /home/Merlin/openssl-3.0.8
$_SERVER['OLDPWD']=> /home/Merlin/openssl-3.0.8
$_ENV['OLDPWD'] => /home/Merlin/openssl-3.0.8

同时Laravel的Factory.php第648行报错:

SSL/TLS保护需要openssl扩展,但该扩展不可用。如果无法启用openssl扩展,您可以自行承担风险,将'disable-tls'选项设置为true来禁用此错误。

环境:PHP 8.2、Composer 2.5.8


解决步骤

1. 确认PHP实际加载的php.ini文件

CLI模式下的PHP可能和Web服务(如FPM)使用不同的配置文件,执行命令查看当前生效的配置路径:

php --ini

找到输出中的Loaded Configuration File,确保你修改的是这个路径下的php.ini。

2. 检查php.ini中的OpenSSL配置

打开正确的php.ini文件,找到对应系统的配置行:

  • Linux/macOS:extension=openssl
  • Windows:extension=php_openssl.dll
    确保该行没有被注释(行首无;),如果是编译安装的PHP,可能需要指定扩展绝对路径,示例:
extension=/usr/lib/php/20220829/openssl.so

(路径需根据你的PHP版本和系统实际情况调整)

3. 验证PHP编译时是否关联OpenSSL

从你提供的OLDPWD路径来看,你可能手动编译过OpenSSL,但PHP编译时未链接该库。重新编译PHP时需指定OpenSSL安装路径:

./configure --prefix=/usr/local/php82 --with-openssl=/home/Merlin/openssl-3.0.8
make && make install

编译完成后再次执行php -i | grep openssl检查状态。

4. 临时应急方案(不推荐)

若暂时无法解决编译或配置问题,可修改Composer配置禁用TLS验证(存在安全风险):

# 全局配置
composer config -g disable-tls true

# 仅当前项目生效
composer config disable-tls true

内容的提问来源于stack exchange,提问作者GrvG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:12:12