PhpStorm怎么连接docker容器内的php XDebug进行断点调试

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进行调试。