think-swoole4使用协程风格,所以推荐手工编译安装swoole4官方最新的稳定版。
在项目根目录下,运行
composer require topthink/think-swoole
即可自动安装think-swoole,如果swoole版本安装的没问题,那么会自动检测,并安装think-swoole4,如果版本过低,安装的就是think-swoole3
安装后,在项目config目录下,会创建swoole.php配置文件(此配置文件,与之前的版本,差距较大)
```
'http' => [
'enable' => true,
'host' => '0.0.0.0',
'port' => 81,
'worker_num' => swoole_cpu_num(),
],
```
上面的配置文件中,http数组下的port便是运行监听的端口,推荐配合nginx转发http请求给swoole
下面是nginx配置的伪静态配置
```
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#if (!-e $request_filename){
# rewrite ^(.*)$ /index.php?s=$1 last; break;
#}
if (!-e $request_filename){
proxy_pass http://127.0.0.1:81;
}
}
```
注释部分是原始的php-fpm运行模式下,thinkphp专用伪静态,可以隐藏index.php
注释下面的部分,则是nginx转发http请求给swoole所用,81就是swoole运行端口
注释上面的部分是在headers里添加用户id,因为经过转发,在swoole运行模式下,thinkphp种传统的获取ip的方式
```
request()->server(‘REMOTE_ADDR’)
```
获取的是nginx转发设置的本地ip127.0.0.1
设置此参数后,可通过以下方式获取用户真实ip
```
request()->server(‘HTTP_X_FORWARDED_FOR’)
```
然后就是运行了
切换到项目目录下,运行以下代码
~~~
php think swoole
~~~
便可运行了,tp6官方文档的方法还要加start,但是那个不适合新版本的think-swoole4