PhpStorm连接Docker容器内的PHP XDebug进行断点调试
1. 安装Docker和Docker Compose
在开始之前,我们需要在本地机器上安装Docker和Docker Compose。如果您还没有安装过,请按照以下步骤进行安装:
安装Docker:
1. 打开命令行或终端。
2. 在终端窗口中,输入以下命令进行安装:
```
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```
3. 安装完成后,您可以通过输入以下命令来验证安装是否成功:
```
sudo docker run hello-world
```
安装Docker Compose:
1. 打开命令行或终端。
2. 在终端窗口中,输入以下命令进行安装:
```
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
3. 安装完成后,您可以通过输入以下命令来验证安装是否成功:
```
docker-compose --version
```
2. 创建Docker环境
在我们开始连接到Docker容器中的PHP XDebug之前,我们需要创建一个Docker环境。我们将在此环境中运行和调试我们的PHP应用程序。
1. 创建一个新目录,并在目录中创建一个名为docker-compose.yml的文件。
2. 在docker-compose.yml文件中添加以下服务:
```
version: '3.9'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- .:/app
environment:
- XDEBUG_MODE=debug
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
db_data:
```
3. 在新目录中创建一个名为Dockerfile的文件,并在其中添加以下内容:
```
FROM php:7.4-apache
RUN apt-get update && \
apt-get install -y git zip unzip && \
pecl install xdebug && \
docker-php-ext-enable xdebug && \
echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "xdebug.client_port=9003" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "memory_limit=256M" >> /usr/local/etc/php/php.ini && \
rm -rf /var/lib/apt/lists/*
COPY . /app
WORKDIR /app
RUN chown -R www-data:www-data /app
```
4. 在新目录中创建一个名为index.php的文件,并在其中添加以下内容:
```
echo "Hello, World!";
?>
```
5. 在新目录中运行以下命令来启动Docker容器:
```
docker-compose up
```
3. 配置PhpStorm进行调试
在我们连接到Docker容器中的PHP XDebug之前,我们需要通过PhpStorm进行调试配置。
1. 打开PhpStorm,并单击“Run”菜单中的“Edit Configurations”。
2. 在“Edit Configurations”对话框中,单击“+”,然后选择“PHP Remote Debug”。
3. 在“PHP Remote Debug”页面中,将“Name”字段设置为“Docker XDebug”,并将“IDE key”字段设置为“PHPSTORM”。
4. 在“Servers”选项卡中,单击“+”按钮添加一个新服务器。
5. 在“Server”窗口中,将“Name”字段设置为“localhost”,将“Host”字段设置为“localhost”,将“Port”设置为“8080”,然后单击“OK”。
6. 在“Path mappings”栏中,单击“+”按钮并添加以下映射:
```
Host path: <本地代码路径>
Container path: /app
```
7. 点击“OK”按钮。
4. 连接到Docker容器中的PHP XDebug进行调试
现在我们已经配置好了PhpStorm进行调试,我们可以连接到Docker容器中的PHP XDebug。
1. 在index.php文件中添加以下代码:
```
$x = 10;
$y = 20;
$z = $x + $y;
?>
```
2. 在您想要创建断点的行上单击行号,然后单击PhpStorm窗口左侧的红色圆形断点图标。
3. 在浏览器中访问http://localhost:8080/,然后您将看到“Hello, World!”消息。
4. 让我们开始调试。在PhpStorm中单击工具栏中的“Start Listening for PHP Debug Connections”按钮(一个绿色小虫子,左边有一个红色的圆圈和一个绿色的箭头)。
5. 刷新浏览器窗口,然后您将看到PHP进入调试模式。
6. 现在,您可以使用PhpStorm中的调试功能进行调试了。单击工具栏中的“Step Over”按钮调试PHP代码。
7. 您可以看到,PhpStorm已将您的代码暂停在添加断点的行上。您可以单击工具栏中的“Resume Program”按钮恢复程序。
总结
在本教程中,我们学习了如何通过PhpStorm连接到Docker容器中的PHP XDebug进行调试。我们创建了一个简单的PHP应用程序,并配置了Docker环境和PhpStorm进行调试。通过以下简单的步骤,您也可以轻松地连接到Docker容器中的PHP XDebug进行调试。