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

問題

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

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

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

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

的情況,這樣你使用php -v會一起報這個問題,如果不是這個問題就不用往下看了。

解決

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

sudo apt-get install php7.1-dev

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

clipboard.png

然後備份舊版本的軟連接,創建所需版本的軟連接,終端:

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

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

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

通過 php -m | grep swoole
如果正常會顯示:

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章