---
title: swoole学习笔记(二)-开发环境配置
---

> swoole 可以跑了,然后开始弄开发环境

> 后面的 xdebug,在协程中 tm 不能用!...有挺多问题的,不推荐配置了,写 log 吧

## 代码自动上传

我的开发环境一般是 windows,phpstorm,然而我的树莓派和 swoole 的环境又不在一起,这时候就可以用 phpstorm 的一个功能,可以自动同步代码

File->setting->Deployment

添加一个,选择 sftp,然后输入 pi 的信息

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180620131748-300x204.png)

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180620132024-1-300x204.png)

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180620132024-2-300x204.png)

添加好服务器后,再设置 options

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180620133255-300x204.png)

自动上传就配置好了,当你保存的时候就会自动上传到服务器

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180620133409-300x96.png)

## 代码自动提示

> 对于我这种百度型程序员,自动提示是必不可少的

### swoole-ide-helper

https://github.com/eaglewu/swoole-ide-helper

这是一个**Swoole 在 IDE 下自动识别类、函数、宏，自动补全函数名**

#### 安装方法

##### phpstrom

将项目 clone 或者直接下载下来,解压

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622124636-300x216.png)

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622124713-300x227.png)

##### composer

要是你的项目中使用了 composer,你可以直接

```bash
composer require --dev "eaglewu/swoole-ide-helper:dev-master"
```

## 远程调试配置

> 虽然可以通过 echo 之类的来调试,但是断点调试也是必不可少的

### XDebug 安装

[https://github.com/xdebug/xdebug](https://github.com/xdebug/xdebug)

```bash
wget https://github.com/xdebug/xdebug/archive/2.6.0.tar.gz
tar -zxvf 2.6.0.tar.gz
cd xdebug-2.6.0/
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
```

然后在 php.ini 中配置

```toml
zend_extension=xdebug.so
[xdebug]
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
```

保存之后`php -m`,出现 xdebug 就算安装成功了

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622161650-300x203.png)

### phpstorm 配置

setting 中 php 配置,设置一下远程 cli

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622161818-300x204.png)

在之前已经配置了远程自动同步的话,这里是会有服务器可以选择的

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162052-300x107.png)

点击 OK 之后,phpstorm 会自动获取远程的 php 信息,如下

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162146-300x246.png)

之后选择我们刚刚添加的(我重命名了 pi_zero php7.2)

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162303-300x204.png)

然后下方的 path mappings,也需要设置(我这里默认设置好了),对本地与远程的目录进行映射

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162622-300x108.png)

xdebug 的端口 9000,一开始就是这样的,如果你改了的话,这里注意也改一下

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162413-300x107.png)

这些配置好之后就可以开始配置调试选项了

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162413-1-300x203.png)

配置启动文件

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622162829-300x254.png)

之后就可以开始调试了,在我们的源码下下断点,然后点击调试按钮,成功~!

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622163913-300x219.png)

当收到信息/连接的时候:

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/TIM%E6%88%AA%E5%9B%BE20180622164021-300x238.png)

非常舒服,嘿嘿嘿

![](img/02-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.assets/1LE84QO9K@A1N9.jpg)
