PHP7安裝擴展

使用環境:Centos7+PHP7.0.9php


源碼編譯安裝的php能夠經過安裝包目錄的擴展包(ext)進行組件安裝,須要使用到phpize這個執行文件:mysql

wKioL1jma8yRhQhIAAA9Rwv06Rw175.png


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

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

wKiom1jmbt-yGmzjAAAVar5IOWg498.png


查看php當前支持的擴展:工具

# php -mthis

wKioL1jmb4yz6lPxAAA1xR0pXk8019.png


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


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

wKiom1jmcOKSDToaAABNbx4DRRg187.png


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

wKiom1jmct-B6_ncAAAbIejyppY269.png


不要緊,經過拷貝config0.m4,建立一個config.m4,再此執行編譯:ip

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命令很實用,能夠結合使用排錯。

相關文章
相關標籤/搜索