Swoole 常見問題


 

  • 本文不針對 pecl 安裝的 swoole,建議也不要使用這個方式安裝,因為這種方式安裝的 swoole 無法自定義編譯選項
  • 一個穩定的 PHP5 版本,雖然已經支持 PHP7 了,但似乎還有暗坑,建議使用 PHP5.6
  • 一個穩定的 swoole 版本,使用帶有 stable 的版本,由於 swoole 還在不斷完善中,每個版本都會有 bug 的解決,所以請使用 2.0 以下的最新 stable 版本

Swoole 擴展編譯失敗,如何解決

  • 某些依賴未安裝,如 openssl, libcompress 之類,按提示安裝就好,swoole 提示可能不會很明顯
  • 權限問題,swoole 源碼目錄不要使用 windows 掛載的目錄

如何查看是否已經安裝成功

// 通常情況下,編譯安裝成功,swoole.so 會添加到默認擴展目錄下,目錄查看/php-path/bin/php-config --extension-dir

// 此命令會輸出 swoole 版本及默認配置,如果沒有輸出或者報錯,則說明擴展僅僅編譯成功,未啟用
php --ri swoole

// 某些情況下,你的 php-fpm和php-cli使用的不是同一個php.ini// php-fpm 查看php.ini配置路徑,請使用phpinfo函數// php-cli 查看 php.ini 配置路徑
php --ini|grep "Loaded"// 輸出的路徑如果和phpinfo中的路徑一致,則表示使用的同一個php.ini,反之則不是,啟用擴展時請選擇正確的配置文件

擴展已經安裝成功,但運行提示 'xxx' class not found

// 前提是你擴展安裝並啟用成功,也就是說你是通過命令行運行的文件
php filename.php
// 命令行下 swoole 已經啟用
php --ri swoole
// 在輸出注意輸出中有一項 use_namespace,如果此項為1,則需要使用命令空間// swoole_server => \Swoole\Server// 在確認擴展啟用無誤的情況下,class not found 都是這個原因造成的

服務端已經啟動,客戶端連接不上

  • 請檢查防火牆規則
  • 如果使用的虛擬機,請檢查端口映射是否已經添加

提示 SWOOLE_SSL 常量未定義

// 查看swoole編譯選項 openssl 是否為 enable狀態
php --ri swoole


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM