在Ubuntu调试PHP,可查看Apache、Nginx或PHP-FPM错误日志定位问题;开发环境临时或永久开启错误显示;安装Xdebug支持断点调试;检查文件权限与所有权;用phpinfo()验证配置并安装缺失扩展。
在Ubuntu环境下调试PHP,不必慌乱,按照步骤操作即可。错误信息通常能提供最直接的问题线索,关键在于知道如何查找和解读。本指南将从日志查看、配置调整、工具使用到权限管理,系统讲解PHP调试的完整流程。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
PHP出现错误时,通常会将其记录到系统日志中。因此,第一时间查看日志往往比盲目猜测更高效。
/var/log/apache2/error.log。使用 tail 命令实时监控最新内容,可节省时间:sudo tail -f /var/log/apache2/error.log/var/log/nginx/error.log,同样用 tail 监控:sudo tail -f /var/log/nginx/error.log/var/log/php-fpm.log 或 /var/log/php7.x-fpm.log(其中x代表PHP版本号)。查看命令与上述相同,直接使用tail即可。查看日志后若仍觉得不够直观,可直接在浏览器中显示错误信息。开发环境下,这种方法最为直接有效。
php --ini 命令即可查看,例如 /etc/php/8.2/apache2/php.ini。nano)打开,调整以下配置项:display_errors = On # 开启错误显示
error_reporting = E_ALL # 报告所有错误
log_errors = On # 同时记录错误到日志(避免丢失)
error_log = /var/log/php_errors.log # 自定义日志路径(可选)
第三步:保存文件后,务必重启Web服务器使配置生效:sudo systemctl restart apache2sudo systemctl restart php8.2-fpm && sudo systemctl restart nginx日志和错误显示只能帮助定位“问题在哪里”,但若想深入理解“为什么这样”,则需要使用Xdebug。它支持断点调试、变量监控、调用栈分析,是真正强大的调试利器。
sudo apt-get install php-xdebugzend_extension 路径):zend_extension=xdebug.so # 加载Xdebug扩展
xdebug.remote_enable=1 # 开启远程调试
xdebug.remote_host=localhost # 调试客户端地址(本地为localhost)
xdebug.remote_port=9003 # 调试端口(默认9003,避免与其他服务冲突)
xdebug.remote_handler=dbgp # 调试协议
xdebug.remote_autostart=1 # 自动启动调试(无需手动触发)
xdebug.idekey=PHPSTORM # IDE标识(如PHPStorm、VSCode)File > Settings > Languages & Frameworks > PHP > Servers,点击 + 添加服务器。Name(例如 Local),Host 填写 localhost,Port 填写 80(HTTP端口),勾选 Use path mappings。/var/www/html 映射到项目根目录)。Run > Start Listening for PHP Debug Connections,在代码中设置断点,刷新浏览器即可开始调试。有时PHP脚本本身并无问题,但会报“Permission Denied”错误。这通常是由文件权限或所有权设置不当引起的。
www-data):sudo chown -R www-data:www-data /path/to/your/php/files755,文件权限设为 644:sudo chmod -R 755 /path/to/your/php/files
sudo find /path/to/your/php/files -type f -exec chmod 644 {} \;phpinfo() 函数查看当前配置。创建一个 info.php 文件,内容为 ,通过浏览器访问该文件,即可确认 display_errors、error_reporting 等设置是否已生效。mbstring、gd),直接安装:sudo apt-get install php-mbstring php-gd # 根据错误提示替换扩展名
sudo systemctl restart apache2/nginx/php-fpm # 重启服务使扩展生效display_errors(设为 Off),以免敏感信息泄露。仅通过日志记录错误,确保安全。logrotate 工具清理,防止磁盘空间被占满。php -v 查看当前版本,避免后续出现兼容性问题。侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述