問題
首先,你電腦上,系統是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
下,查看
然後備份舊版本的軟連接,創建所需版本的軟連接,終端:
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
如果正常會顯示: