PHP8环境下Laravel报错Call to undefined function openssl_cipher_iv_length()求助
解决步骤
- 确认Web端PHP是否加载openssl扩展
你之前用php -m查询的是命令行模式下的PHP加载模块,和Web请求使用的php-fpm/mod_php配置相互独立,大概率是Web端PHP没有启用openssl扩展:- 站点根目录新建
phpinfo.php文件,写入内容<?php phpinfo(); ?> - 通过浏览器访问该文件,搜索openssl项,确认扩展是否处于启用状态
- 如果未启用,检查php-fpm对应的配置扫描目录是否包含
00_openssl.ini,添加配置后重启php-fpm服务,Alpine环境执行命令:service php8-fpm restart
- 站点根目录新建
- 重新安装完整openssl依赖
Alpine环境可能存在扩展安装不完整的问题,执行以下命令重新安装依赖:
apk add openssl php8-openssl
安装完成后重启php-fpm服务生效
- 修复Laravel配置
确认.env文件中APP_KEY配置正常,若为空或格式异常,执行以下命令重新生成:
php artisan key:generate php artisan config:clear
- 重置Laravel核心vendor文件
如果之前意外修改过Laravel核心文件,执行以下命令重置vendor目录的核心代码:
rm -rf vendor composer install --optimize-autoloader
内容的提问来源于stack exchange,提问作者BigJobbies
相关产品推荐
相关产品推荐

