本文為mac版本安裝,mac10.14.4 php 7.1.23(mac自帶)
沒有安裝mosquitto的可以看一下鏈接先安裝一下
http://www.itdecent.cn/p/900498bfca34
然后我們來安裝php擴展
如果你已經使用預先建立的軟件包來安裝Mosquitto,你需要確保你已經安裝了開發(fā)頭文件。在紅帽派生的系統(tǒng)上,這可能是叫做libmosquitto-devel,在基于 Debian的系統(tǒng)上叫做libmosquitto-dev。
你可以使用pecl來來安裝這個拓展包:
pecl install Mosquitto-alpha
注:如果提示權限不足,可以直接sudo pecl install Mosquitto-alpha
起初沒有用sudo,在網上找的文章都讓更改其文件目錄權限(chown <user> <folder>),中間更改了若干個目錄,包括php_ini, (/usr/share/pear,/usr/tests,/usr/docs,/tmp/pear,/usr/lib,/usr/local),但到了最后仍然提示出錯,如圖

雖然出錯,但是mosquitto.so編譯成功,只好將其復制出來,在/etc/php.ini文件里配置如下
extension=/usr/local/my-php-extension/pcntl.so
extension=/usr/local/my-php-extension/mosquitto.so
此處用的全局路徑名稱。
如果使用sudo pecl 直接編譯成功的話,則只需要配置
extension=mosquitto.so 即可。
編譯成功截圖

其中
提示WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading Mosquitto-0.4.0.tgz ...
而采用了pecl channel-update pecl.php.net進行升級。
以上記錄比較亂,為實際操作記錄。
或者,你也可以使用常規(guī)的安裝拓展的方法來安裝:
phpize
./configure --with-mosquitto=/path/to/libmosquitto
make
make install
然后添加extension=mosquitto.so到你的PHP配置文件php.ini中。
--with-mosquitto
路徑一般在/usr/local/lib
注:
這個升級集成工具(Mxsrvs或Xampp)時,一定要用絕對路徑
在這一步需要注意的一個問題是,在使用 phpize 編譯命令時,一定要使用
/Applications/MAMP/bin/php/php7.2.1/bin/phpize 這個應用程序 MAMP 下的 php7.x 的 bin 目錄來執(zhí)行 phpize。
因為 MAC 自帶了 php 環(huán)境,可以使用 MAMP 將 php 配到命令行中,這時候你使用的 php -v 是 MAMP 加到環(huán)境變量的 php 版本,但是你如果直接使用 phpize 命令(未指定應用程序 MAMP 下的 php7.x 的 bin 目錄的 phpize),那么 phpize 編譯的將是系統(tǒng)自帶的那個 php 環(huán)境,所以直接使用 phpize 編譯擴展的時候,會編譯到系統(tǒng)自帶的 PHP 環(huán)境下,故而須注意在使用 phpize 命令時一定要使用的是全路徑,而且上面的 php/php{版本}/ 目錄路徑有可能跟我的不一樣,請自行核對并調整 。
參考:
[在MAC版MAMP環(huán)境下為PHP7.x安裝redis擴展的過程]
(http://baijiahao.baidu.com/s?id=1602787432736329481&wfr=spider&for=pc)
是可選參數,只有當安裝程序找不到libmosquitto拓展包,才需要添加這個參數
git參考文檔
https://github.com/mgdm/Mosquitto-PHP.git
Mosquitto-PHP 中文手冊