Windows 11下PHP_INI_SCAN_DIR不生效问题求助
解决PHP_INI_SCAN_DIR指定目录但未加载额外INI文件的问题
检查目录下的INI文件名格式
PHP在Windows下默认仅加载**.ini后缀**的文件,先确认文件扩展名未被系统隐藏(比如实际是errors_logging.ini.txt),可在文件夹选项中开启“显示文件扩展名”验证;同时避免文件名以.开头(如.extensions.ini),这类隐藏文件PHP不会扫描。验证目录权限
确保运行PHP的用户(当前登录用户或Web服务应用池用户)对C:\php\config目录拥有读取权限。新装机环境权限可能更严格,右键目录→属性→安全,检查对应用户权限是否包含“读取和执行”“列出文件夹内容”“读取”。确认环境变量生效范围
配置环境变量后需关闭所有命令行窗口重新打开,再执行php --ini测试;若是Web环境,需重启Apache/Nginx等服务才能让环境变量生效。排查PHP版本差异
新环境PHP版本若与之前不同,可能存在解析逻辑差异:- 尝试给路径添加末尾斜杠,设置为
C:\php\config\再测试; - 临时用命令行设置环境变量:
set PHP_INI_SCAN_DIR="C:\php\config",验证是否能加载文件。
- 尝试给路径添加末尾斜杠,设置为
手动测试单个INI文件
执行php -c C:\php\config\errors_logging.ini --ini,若能加载单个文件,说明目录扫描逻辑存在问题;若仍无法加载,检查目标INI文件是否有语法错误(如缺少=、引号不闭合等)。查看PHP启动日志
在主php.ini中开启日志:log_errors = On error_log = "C:\php\php_startup.log"执行
php --ini后查看日志文件,里面会记录未加载额外INI文件的具体原因。
内容的提问来源于stack exchange,提问作者Walter
相关产品推荐
相关产品推荐

