快速定位与修复步骤
php -v、php -m、ps aux | grep php-fpmphp --ini 查看加载的 php.ini;不同 SAPI 配置可能不同(如 /etc/php/{version}/{apache2|fpm|cli}/php.ini)display_errors = Onerror_reporting = E_ALLlog_errors = Onerror_log = /var/log/php_errors.log(确保目录与文件可被 www-data 或 php-fpm 写入)sudo systemctl restart apache2sudo systemctl restart nginx && sudo systemctl restart php{version}-fpmsudo tail -f /var/log/apache2/error.log 或 sudo tail -f /var/log/nginx/error.logsudo tail -f /var/log/php_errors.logerror_log 或检查 Web 服务器配置常见场景与处理要点
display_errors 与 error_reporting 后直接运行脚本复现sudo systemctl status php{version}-fpmunix:/var/run/php/php{version}-fpm.sock; 或 127.0.0.1:9000)sudo a2enmod php{version}(如适用),重启 apache2error_log 路径需存在且可写(如 /var/log/php_errors.log,chown www-data:www-data 并设定合适权限)sudo apt install php-{version}-{mbstring,xml,curl,...};开发包缺失时安装相应 -dev 包并重试进阶调试与日志分析
sudo apt-get install php-{version}-xdebug(或 php-xdebug)zend_extension=xdebug.soxdebug.mode=debugxdebug.client_host=127.0.0.1xdebug.client_port=9003xdebug.start_with_request=yeserror_log("msg", 3, "/path/to/file.log"); 将关键变量与上下文写入独立日志,便于定位sudo grep -i 'mysql\|pdo\|curl' /var/log/nginx/error.log 或 /var/log/apache2/error.log一键排查清单
php -v 与 php -m 正常;php --ini 确认加载的配置路径error_reporting=E_ALL、display_errors=On(排查时)、log_errors=On、error_log 可写/var/log/apache2/error.log、/var/log/nginx/error.log、/var/log/php_errors.log