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
相關文章
相關標籤/搜索