环境: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源码的调试了。