XDebug 在Ubuntu下的配置注意点

本文分享了在Ubuntu 11.04环境下安装PHP5.3.5 FastCGI搭配Lighttpd1.4.28的过程,并详细解释了如何正确配置php.ini以启用调试信息展示,以及XDebug的使用技巧,特别是如何调整设置以显示错误信息和利用var_dump特性进行高效调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天装个XDebug各种不顺,唉,真是的,不记下来对不起自己。


我在Ubuntu 11.04下装的,PHP 5.3.5 fastcgi搭配 Lighttpd 1.4.28,其实服务器是哪种都可以,只是我一开始过于注重xdebug的设置而忽略了php.ini的设置。

其他安装都好说,网上都有,可以用pecl编译,也可以用ubuntu的源,最后我要说的是(当然也是我Google之后从别人那里学到的):


Ubuntu版的PHP 默认是生产环境,所以在php.ini里,所有的display_errors之类的选项全都是OFF,要显示debug信息,至少要把两个选项改成On:display_errorshtml_errors,这样当碰到错误时网页上会高亮显示,而且xdebug的var_dump的特性才能表现出来。

当然,其实更多的人是要作为正式运行的服务器的话,还是应该把error都禁用掉,只是我们是在这里开发,所以。。。

<think>我们正在配置PhpStorm中的Xdebug调试环境。根据引用,配置步骤涉及安装Xdebug配置php.ini、设置PhpStorm等。以下是详细步骤: 1. **安装Xdebug**: - 在Ubuntu中,可以使用`apt`安装:`sudo apt install php-xdebug`(注意选择与PHP版本匹配的Xdebug)。 - 或者通过PECL安装:`pecl install xdebug`。 2. **配置php.ini**: - 找到php.ini文件(例如:`/etc/php/7.4/fpm/conf.d/20-xdebug.ini`,具体路径取决于PHP版本和安装方式)。 - 添加Xdebug配置注意Xdebug 3.x的配置与2.x不同): ```ini zend_extension=xdebug.so xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=127.0.0.1 # 如果PhpStorm在本地,使用127.0.0.1;如果PhpStorm在宿主机而PHP在Docker容器内,则可能需要设置为host.docker.internal(见引用[4]) xdebug.client_port=9003 # Xdebug 3默认端口是9003,注意PhpStorm设置一致 xdebug.idekey=PhpStorm ``` - 注意Xdebug 3中,原来的`remote_*`配置项已被替换(引用[2])。例如,`xdebug.remote_enable`被替换为`xdebug.mode`和`xdebug.start_with_request`。 3. **重启PHP服务**: - 例如:`sudo systemctl restart php7.4-fpm`(根据你的PHP版本和服务名称调整)。 4. **在PhpStorm中配置**: - 打开PhpStorm,进入设置(Settings/Preferences)。 - 找到`PHP` > `Debug`,确保`Xdebug`部分设置正确: - Debug port: 9003(与php.ini中的`xdebug.client_port`一致) - 在`PHP` > `Servers`中,添加一个服务器: - Name: 任意(如`localhost`) - Host: 你的项目域名(如`localhost`) - Port: 80(或你的项目端口) - Debugger: Xdebug - 勾选`Use path mappings`,并将项目目录映射到服务器上的路径(重要,尤其在使用Docker或虚拟机时,见引用[3]和[4])。 5. **启动调试**: - 在PhpStorm中,击右上角的电话图标(Start Listening for PHP Debug Connections)使其处于监听状态。 - 在代码中设置。 - 使用浏览器访问你的项目,并在URL中添加`XDEBUG_SESSION=PhpStorm`参数(或使用浏览器扩展如Xdebug helper)。 **注意**:如果使用Docker(如引用[4]),确保`xdebug.client_host`设置为`host.docker.internal`(在Windows/macOS上,Docker容器可通过此主机名访问宿主机)。在Linux上可能需要额外配置。 **验证**: - 在PhpStorm中,运行`phpinfo()`并查看Xdebug部分,确认配置已生效。 - 当访问带有调试参数的URL时,PhpStorm应捕获断。 §§相关问题§§ 1. 如何验证Xdebug是否在PHP中正确安装和配置? 2. 在PhpStorm中调试时无法命中断,可能的原因有哪些? 3. 如何为使用Docker的PHP项目配置Xdebug? 4. Xdebug 3与Xdebug 2在配置上有哪些主要区别?</think>### 在 PhpStorm 中配置 Xdebug 的完整指南 #### 一、环境准备 1. **安装 Xdebug 扩展** - 在 Ubuntu 中执行: ```bash sudo apt install php-xdebug # 匹配当前 PHP 版本 ``` - 验证安装:`php -m | grep xdebug` 应输出 `xdebug` 2. **配置 PHPXdebug 参数** - 编辑配置文件(以 PHP 7.4 为例): ```bash sudo vim /etc/php/7.4/fpm/conf.d/20-xdebug.ini ``` - 添加核心配置Xdebug 3.x 语法): ```ini [XDebug] zend_extension=xdebug.so xdebug.mode=develop,debug # 启用开发和调试模式 xdebug.start_with_request=yes # 自动启动调试会话 xdebug.client_host=localhost # 若用 Docker 则改为 host.docker.internal xdebug.client_port=9003 # 与 PhpStorm 调试端口一致 xdebug.idekey=PhpStorm # IDE 标识密钥 ``` - 重启 PHP 服务: ```bash sudo systemctl restart php7.4-fpm ``` #### 二、PhpStorm 配置步骤 1. **设置 PHP 解释器** - `File > Settings > PHP` - 选择正确的 CLI 解释器路径(如 `/usr/bin/php7.4`) 2. **配置调试端口** - `Settings > PHP > Debug` - 将 **Xdebug 监听端口**设为 `9003`(默认 9000 可能冲突) - ✅ 勾选 `Break at first line in PHP scripts` 3. **服务器映射(关键步骤)** - `Settings > PHP > Servers` - 击 ➕ 添加新服务器: - **Name**: `Localhost` - **Host**: `localhost` - **Port**: `80`(或实际端口) - ✅ 勾选 `Use path mappings` - 将**本地项目路径**映射到**服务器路径**(如 `/home/user/project` → `/var/www`) 4. **启用调试监听** - 击工具栏电话图标:![电话图标](https://resources.jetbrains.com/help/img/idea/2023.3/php_debug_toggle.png) (或 `Run > Start Listening for Debug Connections`) #### 三、启动调试会话 1. **浏览器触发** - 安装 [Xdebug Helper 扩展](https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc) - 击扩展图标 → 选择 `Debug` → 访问网站 2. **命令行触发** ```bash XDEBUG_SESSION=PhpStorm php your_script.php ``` 3. **断调试** - 在代码行号旁设置 - 触发请求后,PhpStorm 将自动捕获并暂停执行 #### 四、验证配置 1. 创建 `test.php` 文件: ```php <?php xdebug_break(); // 强制中断 phpinfo(); ``` 2. 访问该文件,检查 Xdebug 配置是否生效: - 在 `phpinfo()` 输出中搜索 `xdebug` 模块 - 确认参数与 `20-xdebug.ini` 一致[^3][^5] > **常见问题排查**: > - **无法命中断**:检查路径映射配置,确保服务器路径与实际路径一致 > - **连接超时**:关闭防火墙 `sudo ufw allow 9003` > - **Docker 环境**:将 `xdebug.client_host` 设为 `host.docker.internal`[^4] > - 查看 Xdebug 日志:在 php.ini 中添加 `xdebug.log=/tmp/xdebug.log`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值