使用環境:Centos7+PHP7.0.9php
源碼編譯安裝的php能夠經過安裝包目錄的擴展包(ext)進行組件安裝,須要使用到phpize這個執行文件:mysql
把phpize加到系統全局中,方便使用:sql
# ln -s /usr/local/php/bin/phpize /bin/ide
查看php當前支持的擴展:工具
# php -mthis
能夠方便看到挺多經常使用擴展(如:mbstring、mcrypt、pdo_mysql、openssl等等)在源碼安裝的時候並沒裝上。spa
我安裝openssl爲例,進入php源碼安裝包ext目錄:3d
進入openssl執行phpize進行編譯,報了個找不到文件的錯誤:blog
不要緊,經過拷貝config0.m4,建立一個config.m4,再此執行編譯:ip
又出問題了,沒有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,沒問題了。
執行編譯:
# ./configure --with-php-config=/usr/local/php/bin/php-config
執行安裝:
# make && make install
擴展存放路徑:
編輯php.ini開啓openssl:
經過命令查找php.ini配置,能夠看出系統沒有讀取到php的位置,識別路徑爲/usr/local/php/lib:
# php --ini
把php安裝包中開發或者產品版配置複製一個到指定目錄
編輯php.ini,開啓openssl:
再此執行php -m查看擴展支持,彈出2個警告,php_openssl.dll找不找:
去擴展目錄查看個糾結,發現文件擴展名稱跟配置文件名稱不匹配:
從新編輯php.ini,修改openssl模塊名稱:
從新查看看php擴展支持:
總結:autoconf這個工具是依賴工具是關鍵,php.ini配置要放對位置,檢查配置擴展名稱是否跟安裝的一致。php命令很實用,能夠結合使用排錯。