升级PHP8后移除php.ini分号启用mysqli、openssl扩展仍不生效
问题排查步骤
- 确认修改的是正确的php.ini配置文件
写个包含<?php phpinfo(); ?>的文件,通过XAMPP的Apache服务访问,查看Loaded Configuration File字段对应的路径,你修改的ini必须和该路径完全一致。XAMPP默认存在多份ini模板,很多用户误改CLI版本的ini或者目录下的模板文件,导致配置不生效。 - 确认扩展目录配置正确
查看phpinfo中extension_dir字段的路径,检查该目录下是否存在php_mysqli.dll(Windows)/mysqli.so(Linux)、php_openssl.dll/openssl.so扩展文件。升级PHP后如果extension_dir仍指向旧版本PHP的扩展目录,会无法加载对应扩展。 - 确认openssl依赖完整(Windows环境)
openssl扩展依赖libssl-1_1-x64.dll、libcrypto-1_1-x64.dll等动态库,需要将PHP根目录加入系统环境变量PATH,或者将上述dll文件复制到C:\Windows\System32目录,否则扩展会因缺少依赖加载失败。 - 重启Apache服务
修改php.ini后必须重启XAMPP控制面板中的Apache服务,新配置才会生效。 - 验证扩展是否实际加载
刷新phpinfo页面,搜索mysqli、openssl关键词,若存在对应的扩展信息块则加载成功,否则依然是配置环节存在问题。 - 若为命令行执行Composer报错
命令行的PHP使用独立的ini配置,在终端执行php --ini查看CLI加载的配置文件路径,修改对应文件的扩展配置后,执行php -m查看扩展列表中是否存在mysqli、openssl,确认加载成功后再执行Composer命令。 - 临时规避方案
若确认扩展已正常加载但Composer仍报错,可在执行Composer命令时添加--ignore-platform-reqs参数跳过平台检查,或在项目composer.json中配置平台版本强制兼容。
内容的提问来源于stack exchange,提问作者RooKie
相关产品推荐
相关产品推荐

