在 Ubuntu 上开启 PHP 调试,通常是指 开启错误显示 / 日志记录,或者 使用 Xdebug 进行断点调试。下面按常见需求分情况说明。
先确认你用的是哪个 php.ini:
php --ini
常见路径:
/etc/php/8.1/apache2/php.ini(Apache)/etc/php/8.1/fpm/php.ini(Nginx + PHP-FPM)/etc/php/8.1/cli/php.ini(命令行)编辑对应文件:
sudo nano /etc/php/8.1/apache2/php.ini
修改或取消注释以下内容:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
Apache:
sudo systemctl restart apache2
Nginx + PHP-FPM:
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx
✅ 浏览器访问即可看到 PHP 报错信息。
生产环境不建议 display_errors = On,而应使用日志:
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
创建日志文件并授权:
sudo touch /var/log/php_errors.log
sudo chown www-data:www-data /var/log/php_errors.log
sudo apt update
sudo apt install php-xdebug
或指定版本:
sudo apt install php8.1-xdebug
编辑 Xdebug 配置文件:
sudo nano /etc/php/8.1/mods-available/xdebug.ini
加入或修改:
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm
php -v
看到类似:
with Xdebug v3.x
或:
php -i | grep xdebug
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
error_log 或 php-fpm.log| 需求 | 方法 |
|---|---|
| 看报错 | 开启 display_errors |
| 生产环境 | 开启 log_errors |
| 断点调试 | 安装 Xdebug |
| IDE 调试 | VS Code + Xdebug |
如果你能告诉我:
我可以给你 精确到命令级别 的配置方案。