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