緒:配置選項講解:./configure --help | less
使用--enable-NAME
和--disable-NAME
開關編譯哪些擴展和SAPI .
如果擴展或SAPI具有外部依賴關系,則需要使用--with-NAME
和--without-NAME
.
如果NAME所需的庫 不在默認位置(例如,因為您自己編譯),則可以使用--with-NAME = DIR
指定其位置.
如果選項是--enable-NAME
或--with-NAME
說明該選項默認是關閉的.如果是--disable-NAME
或--without-NAME
說明該選項默認是開啟的.
- enable 是啟用 PHP 源碼包自帶,但是默認不啟用的擴展,比如 ftp 和 exif 擴展。with 是指定擴展依賴的資源庫的位置,如果是默認位置,就可以留空。
- php 的擴展分為靜態編譯和動態編譯兩種,靜態編譯就是隨着PHP的源碼一起編譯安裝,也就是 --enable 和 --with 啟用的擴展。動態編譯就是在一個已經可以使用的 PHP 環境下,使用 phpize 命令來給 php 增加擴展的方式,這種方式就是生成的 so 文件。所以想要把擴展編譯進 php 內核,就需要和 php 一起編譯安裝。
- php源碼包ext目錄下的就是官方默認支持的擴展,還有一部分就是 pecl 庫里的擴展,pecl 的一部分擴展也是官方支持的,另一部分是第三方開發者支持的。
- 把擴展跟隨php一起編譯安裝,也就是 configure 命令
比如 configure 命令行可能看起來象這樣:
$ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql
Sorry, I cannot run apxs. Possible reasons follow:
1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)
首先:看是是否安裝 perl -v
若沒有 則 wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
tar xzvf perl-5.16.1.tar.gz
cd perl-5.16.1.tar.gz
./Configure -des -Dprefix=/usr/local/perl
make
make install
然后,若有安裝perl :
1、根據不能run apxs 。cd 到apache的bin目錄下運行./apxs 運行結果
bash: ./apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directory
2、vim apxs文件 找“/replace/with/path/to/perl/interpreter”關鍵字
在第一個行 :#!/replace/with/path/to/perl/interpreter -w
根據perl的安裝目錄 /usr/bin/perl
修改為:#! /usr/bin/perl -w



重啟 php-fpm
我們在新安裝擴展后,是需要重新php-fpm的,已使擴展生效。
最簡單粗暴的重新php-fpm的方式是:
先找到php-fpm的進程號,kill 掉,再用/usr/local/php/sbin/php-fpm 這樣啟動。
其實還有更多溫和的方法,就是使用信號。
INT, TERM:立刻終止
QUIT:平滑終止
USR1:重新打開日志文件
USR2:平滑重載所有worker進程並重新載入配置和二進制模塊
示例:
php-fpm 關閉:kill -INT `cat /usr/local/php/
var
/run/php-fpm.pid`
php-fpm 重啟:kill -USR2 `cat /usr/local/php/
var
/run/php-fpm.pid`
若是要生成php-fpm.pid文件,修改/usr/local/php71/etc/php-fpm.conf文件,默認pid是注釋的
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/php71/var/run/php-fpm.pid
ExecStart=/usr/local/php71/sbin/php-fpm
ExecReload=/bin/kill -USR2 MAINPID
ExecStop=/bin/kill −INT MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

其中,php是CLI模式下的PHP腳本執行程序。
PEAR(PHP Extension and Application Repository,PHP擴展與應用庫),是PHP官方開源類庫,可以使用pear list列出所有已經安裝的包。通過pear install可以安裝需要的包。
PECL是PHP的擴展庫,可以通過PEAR的Package Manager的管理
php-config是輸出PHP編譯信息的輔助命令。
phpdbg是一個輕量級,具有豐富功能的調試平台。PHP 5.4以上版本支持,比如可以使用它查看opcode
phpdbg的其他功能可以通過phpdbg--help查看。
phpize命令用來動態安裝擴展,如果在安裝PHP時沒有安裝某個擴展,可以通過這個命令隨時安裝。
