一、下載php源碼
下載地址:http://cn.php.net/downloads.php 二、安裝
1、將下載的二進位包移動到/usr/local目錄,解壓縮檔案包
tar zxvf php-7.1.4.tar.gz
2、進入解壓的php檔案夾下/usr/local/php-7.1.4,安裝依賴,編譯安裝
yum install libxml2 libxml2-devel
./configure --prefix=/usr/local/php --with-zlib --enable-zip --with-openssl --enable-fpm --enable-mbstring --with-libdir=lib64 --without-pear --disable-phar
make
make test (編譯完後可以允許一下make test命令,檢測編譯是否有問題)
make install
安裝完成後的摘要資訊:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
Installing PHP CLI binary: /usr/local/php/bin/
Installing PHP CLI man page: /usr/local/php/php/man/man1/
Installing PHP FPM binary: /usr/local/php/sbin/
Installing PHP FPM defconfig: /usr/local/php/etc/
Installing PHP FPM man page: /usr/local/php/php/man/man8/
Installing PHP FPM status page: /usr/local/php/php/php/fpm/
Installing phpdbg binary: /usr/local/php/bin/
Installing phpdbg man page: /usr/local/php/php/man/man1/
Installing PHP CGI binary: /usr/local/php/bin/
Installing PHP CGI man page: /usr/local/php/php/man/man1/
Installing build environment: /usr/local/php/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/php/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/php/man/man1/
page: phpize.1
page: php-config.1
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
3、php配置
#php的設定檔為 php.ini
cp /usr/local/php-7.1.4/php.ini-production /usr/local/php/lib/php.ini
#使得另一種方法來管理服務:
cp /usr/local/php-7.1.4/sapi/fpm/php-fpm /etc/init.d/php-fpm
#添加執行許可權
chmod +x /etc/init.d/php-fpm
#php-fpm的設定檔
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
根據機器配置修改php-fpm進程數最大限制,這限制在/usr/local/php/etc/php-fpm.d/www.conf裡面
使用 netstat -napo |grep "php-fpm" | wc -l 查看一下當前fastcgi進程個數,如果個數接近conf裡配置的上限,就需要調高進程數。
但也不能無休止調高,可以根據伺服器記憶體情況,可以把php-fpm子進程數調到100或以上,在4G記憶體的伺服器上200就可以。
pm.max_children = 200
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 12
4、設定環境變數
vi /etc/profile
開啟後,在文檔最下方添加如下配置:
export PATH=/usr/local/php/bin:$PATH
:wq!儲存退出,執行如下命令,使更改生效
source /etc/profile
5、啟動php測試
#啟動
/etc/init.d/php-fpm
#測試php
cd /usr/local/nginx/html
vi test.php
添加如下內容:
<?php
echo phpinfo();
?>
:wq!儲存退出。
瀏覽器輸入:http://10.62.32.123/test.php
如果出現:PHP Version 7.1.4 介面,顯示php詳細的配置的介面,說明安裝正確
6、php重啟、停止
php 7.1.4 源碼中已經內嵌了 php-fpm,只需要在configure的時候添加編譯參數即可。
關於php-fpm的編譯參數有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。
但是,php 7.1.4 下的php-fpm 不再支援 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用訊號控制:
master進程可以理解以下訊號:
SIGINT, SIGTERM 立刻終止
SIGQUIT 平滑終止
SIGUSR1 重新開啟記錄檔
SIGUSR2 平滑重載所有worker進程並重新載入配置和二進位模組
樣本:
php-fpm 關閉:
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重啟:
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`
查看php-fpm進程數:
ps aux | grep -c php-fpm
netstat -anpo | grep "php-cgi" | wc -l
netstat -anop | grep "php-fpm" | wc -l
三、附錄
php編譯選項相關說明:
./configure --prefix=/usr/local/php \ #指定安裝目錄
--with-config-file-path=/usr/local/php/etc \ #指定設定檔的目錄,預設在php/lib下滿\
--enable-fpm \啟用php的fpm
--enable-mbstring \ 啟用多位元組字串支援
--with-libdir=lib64 \
--without-pear \禁用pear擴充
--disable-phar \ 禁用pear擴充的phar函數庫
--enable-mysqlnd \ 啟用php的mysql驅動
--with-mysqli=mysqlnd \ 指定mysql
--with-pdo-mysql=mysqlnd \指定mysql