在Windows上使用Docker为PHP5.3提供一个逐步调试环境

我在Docker中建立了一个可以逐步执行PHP 5.3的开发环境,以下是介绍其步骤。

环境

    • OS:Windows 10

 

    導入しているセキュリティソフト:ESET Internet Security

准备事先

“引入VSCode”

从官方网页下载安装VSCode。

使用Docker引入

从官方页面安装Docker

Docker的共享驱动器设置

为了从容器中访问主机PC的文件,需要进行共享驱动器的设置。

shared_drives_settings.png
docker_vs_firewall.png

解除防火墙

因为使用ESET互联网安全软件,所以我将记下其操作步骤。

eset_network_01.png
eset_network_02.png
eset_network_03.png
eset_network_04.png
eset_network_05.png

随后,返回共享驱动器设置,并重新进行设置。

搭建步态执行环境

通过在 CentOS 6.6 上导入 PHP 5.3 的映像,可以通过添加 Apache、PHP 和 XDebug 来构建环境

创建所需的文件

.
├── Dockerfile
├── .env
├── php
│   └── xdebug.ini
├── html
│   └── index.php
└── .vscode
    └── launch.json

每个文件的内容如下所示。

使用Dockerfile文件依次安装Apache、PHP、XDebug到CentOS并创建镜像。

FROM centos:6.10

RUN yum update -y && \
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

RUN yum install -y \
    httpd

RUN yum install -y \
    php \
    php-mysql \
    php-devel \
    php-pecl-memcache \
    php-xml \
    gcc && \
    pecl install xdebug-2.2.7

COPY ./php/xdebug.ini /etc/php.d/

EXPOSE 80

ENTRYPOINT ["httpd", "-D", "FOREGROUND"]

.env文件
将XDebug连接到主机PC指定的位置

XDEBUG_CONFIG=remote_host=host.docker.internal

当PHP进程启动时,自动将XDebug连接到主机上的VSCode,并开始进行步骤执行的设置要进行记录在xdebug.ini文件中。

zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=on
xdebug.remote_connect_back=off

index.php
一個簡單的示範頁面

<?php
phpinfo();

启动容器

首先,为了创建图像,在PowerShell中切换到包含Dockerfile的目录,并执行以下命令。

docker build . -t php-xdebug-test

使用下面的命令启动容器。

$PROJECT_HOME_DIR=(Convert-Path .)
docker run --rm -it `
    --volume="$PROJECT_HOME_DIR/html:/var/www/html" `
    --env-file="$PROJECT_HOME_DIR/.env" `
    -p 80:80 `
    php-xdebug-test

确保在浏览器中访问http://localhost时,能够显示PHP信息。

执行步骤

使用VSCode打开包含Dockerfile的目录。

vscode_debug.png

launch.jsonファイルが自動で作成されるので、「Listen for XDebug」を以下のように書き換える
pathMappingsにより、コンテナ内のディレクトリとホストPCのディレクトリを対応させている

{
    "name": "Listen for XDebug",
    "type": "php",
    "request": "launch",
    "port": 9000,
    "pathMappings": {
        "/var/www/html": "${workspaceRoot}/html"
    }
}
vscode_make_breakpoint.png
vscode_breakpoint.png

请参阅以下内容

    • Macでの環境構築:https://qiita.com/gcoka/items/c2801a20496851e3ace6

共有ドライブ設定:https://qiita.com/chimatter/items/5e2768baeb8983525602

ファイアウォールの設定:https://qiita.com/spiderx_jp/items/fa8d5ffe298759df9e06

コンテナからホストへアクセス:http://nobutaka-saito.hatenadiary.jp/entry/2018/04/18/080050

广告
将在 10 秒后关闭
bannerAds