Fedora 39下Devilbox自定义php.ini未被识别问题求助
解决Devilbox中自定义PHP配置未加载的问题
排查与修复步骤
1. 分清CLI和FPM的配置差异
php --ini查的是PHP CLI的加载配置,而Devilbox文档说的是PHP-FPM会加载/etc/php-custom.d/下的.ini文件,两者的配置加载逻辑不一样。要确认PHP-FPM是否真的加载了你的配置:
- 执行命令检查FPM配置有效性:
docker exec devilbox-php-1 php-fpm8.2 -t - 或者查看FPM日志找加载错误:
docker exec devilbox-php-1 tail -f /var/log/php-fpm.log
2. 检查配置文件语法
如果Xdebug配置有语法错误,会被PHP直接跳过。用CLI验证配置语法:
docker exec devilbox-php-1 php -c /etc/php-custom.d/devilbox-php.ini -n
如果输出错误信息,修正后重启PHP-FPM容器:
docker restart devilbox-php-1
3. 确认目录映射正确性
虽然容器内能看到文件,但要检查Devilbox的docker-compose.yml里,PHP服务的volumes配置是否正确把cfg/php-ini-8.2映射到容器的/etc/php-custom.d/:
- 找到php服务的volumes段,确认有类似配置:
若路径不对,修改后重启服务:volumes: - ./cfg/php-ini-8.2:/etc/php-custom.ddocker-compose up -d php
4. 强制重载PHP-FPM配置
有时候文件存在但FPM没自动加载,手动触发:
# 重启容器 docker restart devilbox-php-1 # 或者不重启,直接重载配置 docker exec devilbox-php-1 php-fpm8.2 -s reload
5. 验证Xdebug实际加载状态
不管CLI是否显示,直接查FPM的Xdebug加载情况:
docker exec devilbox-php-1 php-fpm8.2 -i | grep xdebug
如果能看到Xdebug相关输出,说明配置已加载,调试问题可能出在IDE或端口映射;如果看不到,回头排查配置文件或加载逻辑。
内容的提问来源于stack exchange,提问作者László Stahorszki
相关产品推荐
相关产品推荐

