學習使用swoole過程當中遇到的坑總結

坑1:使用laravelS依賴的時候 出現一個問題就是想經過php建立websocket客戶端 php

思路就是先建立http客戶端 以後經過upgrade升級成websocket鏈接laravel

可是在第一部過程當中 出現一個問題git

右邊紅色部分顯示 這個class未找到github

學習使用swoole過程當中遇到的坑總結

解決方法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

  1. 以後修改php.ini 增長一句 extension=swoole_async.so
      安裝完以後 就發現 問題也解決了!(有問題能夠留言)

坑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  若是成功 能夠看到 相似於以下圖所示的配置

相關文章
相關標籤/搜索