PHP多版本下安裝Swoole引發的問題

問題

首先,你電腦上,系統是Ubuntu是安裝了不少版本的PHP,其次,你的PHP引用改了以後有多個引發多個版本擴展共存的問題
即如在我本地爲/etc/php/7.1/cli目錄下
圖片描述php

而後在/usr/lib/php目錄下會是這樣:
圖片描述swoole

這種狀況下使用pecl進行安裝將會出現php7

Module compiled with module API=20151012 
PHP    compiled with module API=20160303

的狀況,這樣你使用php -v會一塊兒報這個問題,若是不是這個問題就不用往下看了。spa

解決

首先,查看 /usr/bin/php-config這個軟鏈接指向的是那個,若是發現本地只有一個即如php-config7.0可判定安裝的擴展與實際運行的PHP版本不對應,須要安裝dev
你要從新根據本身PHP版本安裝dev擴展,我正在使用的是PHP7.1.25
在終端輸入:code

sudo apt-get install php7.1-dev

安裝好後,進入目錄/usr/bin下,查看blog

clipboard.png

而後備份舊版本的軟鏈接,建立所需版本的軟鏈接,終端:圖片

sudo mv /usr/bin/phpize /usr/bin/phpize-old
 sudo ln -s /usr/bin/phpize7.1 /usr/bin/phpize
 
 sudo mv /usr/bin/php-config /usr/bin/php-config-old
 sudo ln -s /usr/bin/php-config7.1 /usr/bin/php-config

最後:
若是以前安裝過先將原來PHP.ini的extension=swoole.so先刪了,
再終端 sudo pecl uninstall swoole
再運行 sudo pecl install swooleip

查看php.ini當前版本位置:php --ini
安裝後:sudo gedit /path/to/php/7.1/cli/php.ini 由於可能有些人不是和我安裝同樣默認目錄,因此自行查看,將extension=swoole.so加入到文件中get

經過 php -m | grep swoole
若是正常會顯示:it

clipboard.png

相關文章
相關標籤/搜索