PHP7安裝擴展

使用環境:Centos7+PHP7.0.9


源碼編譯安裝的php可以通過安裝包目錄的擴展包(ext)進行組件安裝,需要使用到phpize這個執行文件:

wKioL1jma8yRhQhIAAA9Rwv06Rw175.png


把phpize加到系統全局中,方便使用:

# ln -s /usr/local/php/bin/phpize /bin/

wKiom1jmbt-yGmzjAAAVar5IOWg498.png


查看php當前支持的擴展:

# php -m

wKioL1jmb4yz6lPxAAA1xR0pXk8019.png


可以方便看到挺多常用擴展(如:mbstring、mcrypt、pdo_mysql、openssl等等)在源碼安裝的時候並沒裝上。


我安裝openssl爲例,進入php源碼安裝包ext目錄:

wKiom1jmcOKSDToaAABNbx4DRRg187.png


進入openssl執行phpize進行編譯,報了個找不到文件的錯誤:

wKiom1jmct-B6_ncAAAbIejyppY269.png


沒關係,通過拷貝config0.m4,創建一個config.m4,再此執行編譯:

wKioL1jmc2Ky2Wc5AABHb0-Op9g887.png


又出問題了,沒有autoconf這個工具:

Cannot find autoconf. Please check your autoconf installation and the

$PHP_AUTOCONF environment variable. Then, rerun this script.


因爲autoconf 依賴於m4,所以會自動下載解決這個依賴關係,通過yum把它下載下來:

# yum -y install autoconf


重新執行phpize,沒問題了。

wKioL1jmeAjSdTXsAAASmTIHRIk481.png


wKiom1jmeCiTAxdqAAAsQD03bh4266.png


執行編譯:

# ./configure --with-php-config=/usr/local/php/bin/php-config


執行安裝:

# make && make install


擴展存放路徑:

wKioL1jmeVqQe_-zAAAX1Xf4nv8218.png


編輯php.ini開啓openssl:

通過命令查找php.ini配置,可以看出系統沒有讀取到php的位置,識別路徑爲/usr/local/php/lib:

# php --ini

wKiom1jmeszhfEoXAAAXO9XoUJk285.png


把php安裝包中開發或者產品版配置複製一個到指定目錄

wKioL1jmfYizRtH-AADqAob-JeI882.png


編輯php.ini,開啓openssl:

wKioL1jmfoXBjThXAACMwheUMZU389.png


再此執行php -m查看擴展支持,彈出2個警告,php_openssl.dll找不找:

wKiom1jmfwXSKl2DAAB7wSzlEtw872.png


去擴展目錄查看個糾結,發現文件擴展名稱跟配置文件名稱不匹配:

wKioL1jmgGDxHR96AAAXKsYcVyM377.png


重新編輯php.ini,修改openssl模塊名稱:

wKiom1jmgGCge6zmAACFmm1QFyI776.png


重新查看看php擴展支持:

wKioL1jmgPbwvdZRAAAs6M8JhUI475.png


總結:autoconf這個工具是依賴工具是關鍵,php.ini配置要放對位置,檢查配置擴展名稱是否跟安裝的一致。php命令很實用,可以結合使用排錯。

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