swoole擴充功能安裝失敗怎麼辦? swoole安裝報錯詳解
推薦學習: swoole教學
今天透過pecl安裝swoole
pecl install swoole
步驟很簡單,但最後安裝成功後來發現phpinfo()中未顯示swoole擴展,執行:
php -m | grep swoole
發現報錯如下:
##woole .so報出來的,說明在載入swoole.so的時候報的找不到mysqlnd_find_charset_nr ,這是一個以mysqlnd 打頭的一個關鍵字,而mysqlnd 又是PHP 的一個擴展,透過閱讀swoole/swoole.mysql.c的原始碼我們發現有以下一段:PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/ php/modules/swoole.so' - /usr/lib64/php/modules/swoole.so: undefined symbol: mysqlnd_find_charset_nr in Unknown on line 0
const MYSQLND_CHARSET* cset = mysqlnd_find_charset_nr(client->connector.character_set); if (cset == NULL) { swoole_php_fatal_error(E_ERROR, "unknown mysql charset[%s].", client->connector.character_set); RETURN_FALSE; }
解決方法:
1、將/etc/php.d/ 目錄中的mysqlnd.ini檔案刪除3、重新啟動php-fpm#2、在/etc/php.ini 的extension=swoole.so 上面一行新增extension=mysqlnd.so
這樣可以解決問題了,同樣也可能會遇到以下報錯:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/swoole.so' - /usr/lib64/php/ modules/swoole.so: undefined symbol: php_sockets_le_socket in Unknown on line 0
##解決的方法也是類似的:###1、將/etc/php .d/ 目錄中的sockets.ini檔案刪除######2、在/etc/php.ini 的extension=swoole.so 上面一行新增extension=sockets.so######3、重新啟動php-fpm ###以上是swoole擴充安裝失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!