环境:Mac OS X
搭建环境工具:Docker
思路是通过Docker
起一个Linux
容器,然后通过vscode
的Remote-SSH
插件登陆进这个Linux
容器。这样就可以在Mac OS X
或者Windows
下调试和Linux
系统相关的代码了。
首先,git clone
下我准备好的Dockerfile
:
1 | git clone git@github.com:dockero/php_centos.git |
php_centos
的目录结构如下:
1 | tree |
其中,
Dockerfile
用来构建镜像的,已经预先安装了php
、swoole
以及其他基础的扩展。
docker-compose.yml
主要是在创建容器的时候设置一些环境变量。
etc
目录则是存放php
扩展的.ini
文件。这里,我们一个扩展对应一个.ini
文件。
除此之外,你在目录php_centos
下需要自己创建一个.env
文件,用来控制swoole
的版本,以及设置公钥等。
这里是我的一份模板:
1 | HTTP_PROXY=http://127.0.0.1:8080 |
每个参数在README
里面都有说明。
OK
,我们编译镜像:
1 | docker-compose build |
然后启动容器:
1 | docker-compose up -d |
之后,我们执行命令:
1 | ssh php |
即可登陆容器了。(如果在登陆容器的时候,需要输入密码,你可以执行命令ssh-add 私钥
来免密登陆)
然后,我们需要在vscode
的同一个工作区里面存放PHP
源码、Swoole
源码、PHP
测试脚本、.vscode
目录。所有需要的东西如下:
1 | tree -L 1 |
我们在.vscode
目录里面创建文件launch.json
:
1 | { |
接下来,我们用vscode
打开测试脚本test.php
,并且停留在这个窗口(注意,必须在停留test.php
窗口的时候点击调试才行),然后点击调试按钮即可进行Swoole
源码的调试了。