坑1:使用laravelS依賴的時候 出現一個問題就是想經過php建立websocket客戶端 php
思路就是先建立http客戶端 以後經過upgrade升級成websocket鏈接laravel
可是在第一部過程當中 出現一個問題git
右邊紅色部分顯示 這個class未找到github
解決方法1: 下降swoole擴展的版本 推薦使用https://pecl.php.net/get/swoole-1.10.5.tgzweb
而後安裝步驟跟初次安裝swoole同樣 若是出現 make && make install 失敗的話 進行 make clean redis
以後再次執行 make && make installwebsocket
可是方法1使用低版本會面臨 再也不維護的風險swoole
解決方法2:推薦採用 下載swoole的異步庫 ext-async異步
須要注意的是 假設swoole的版本是4.4.4 (經過 php --ri swoole 可查看)socket
那麼安裝的ext-async的版本也要4.4.4 搭配使用
安裝步驟以下:
1. wget https://github.com/swoole/ext-async/archive/v4.4.6.zip
2. 解壓 uzip v4.4.6.zip
3. cd ext-async
4. phpize
5. ./configure --with-php-config=PATH (PATH指php-config的具體路徑)
6. make -j 4
7. make install
坑2:卸載編譯安裝的swoole
個人swoole是經過wget下載以後 進行編譯安裝 可是遇過一個狀況 就是想把swoole的版本切換成其餘版本的時候 進行覆蓋安裝會出現失敗的可能
那麼咱們就採起把當前的swoole卸載掉 以後 從新安裝咱們要的版本
步驟以下:
1.找到環境中的php.ini文件
find / -name php.ini
2.編輯文件 找到extension=swoole.so的那一行 註釋掉
3.查找swoole.ini文件 能夠經過以下命令獲取具體路徑
php --ini
4.根據顯示的位置 刪掉swoole.ini
5.測試是否刪除成功 沒有出現swoole的信息就表示卸載成功 就能夠進行愉快的下載安裝了!
//查看swoole版本
php --ri swoole
坑3:在使用swoole過程當中 須要手寫一個關於redis的服務
這個redis的服務 是須要環境中的swoole 開啓 async-redis
此時 經過命令:php --ri swoole 看到並無開啓以上的這個配置
那麼有兩種方法 一種是將環境中的swoole卸載 第二種就是將環境中的swoole從新編譯安裝
這裏使用的是第二種方法 卸載的方法 本文的上面已經提過
1.定位到swoole的安裝位置
cd /usr/local/src/swoole-4.4.6
2.執行編譯安裝的命令 也就是在這裏進行開啓上述說的到redis配置
phpize
#/www/server/php/72/bin/php-config 這個是環境中的php-config的位置
./configure --with-php-config=/www/server/php/72/bin/php-config --enable-async-redis
3.以後執行
make -j
make clean
make install4.以後執行再次執行 php --ri swoole 若是成功 能夠看到 相似於以下圖所示的配置