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