php-7.0.18版本(編譯安裝)-自定義安裝路徑
安裝路徑:/application/php-7.0.18
1.前期準備
安裝編譯需要的gcc和gcc-c++
yum install -y gcc gcc-c++
php依賴
libxml2-devel、openssl-devel、curl-devel、libjpeg-devel、libpng-devel、freetype-devel、openldap-devel、libmcrypt-devel
yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel openldap-devel libmcrypt-devel
下載php源碼包並解壓
cd /tools wget http://cn2.php.net/distributions/php-7.0.18.tar.gz tar -zxf php-7.0.18.tar.gz
2.php編譯安裝
生成Makefile文件
cd php-7.0.18 ./configure --prefix=/application/php-7.0.18 --with-mysqli --enable-mbstring --enable-fpm
需要其他功能自行添加
編譯源代碼並安裝
make && make install
3.後期結尾
給php-7.0.18創建軟鏈接去掉末尾的版本號
ln -s /application/php-7.0.18/ /application/php
添加環境變量
創建php命令軟鏈接到環境變量
ln -s /application/php/sbin/* /usr/local/sbin/ ln -s /application/php/bin/* /usr/local/bin/
配置php
拷貝配置文件
#引擎配置文件:php.ini cd /application/php cp /tools/php-7.0.18/php.ini-development /application/php/etc/php.ini #服務配置文件:php-fpm.conf cd /application/php/etc/ cp php-fpm.conf.default php-fpm.conf cd /application/php/etc/php-fpm.d/ cp www.conf.default www.conf
修改服務配置文件
以nginx身份運行php sed -i 's#nobody#nginx#g' www.conf 開啓慢查詢日誌 sed -i 's#;slowlog#slowlog#g' www.conf 開啓郵件設置 sed -i 's#;php_admin_value\[sendmail_path\]#php_admin_value\[sendmail_path\]#g' www.conf 修改收件人 sed -i 's#[email protected]#244819336@qq#g' www.conf 開啓pid文件 sed -i 's#;pid#pid#g' /application/php/etc/php-fpm.conf 開啓錯誤日誌 sed -i 's#;error_log#error_log#g' /application/php/etc/php-fpm.conf 修改錯誤級別 sed -i 's#;log_level = notice#log_level = error#g' /application/php/etc/php-fpm.conf 修改文件描述符數量 sed -i 's#;rlimit_files = 1024#rlimit_files = 32768#g' /application/php/etc/php-fpm.conf 修改爲異步模型 sed -i 's#;events#events#g' /application/php/etc/php-fpm.conf
5.常用命令
啓動php-fpm
php-fpm -c使用指定的引擎配置文件運行,而非默認 php-fpm -c /application/php/etc/php.ini
停止php-fpm
kill -SIGQUIT $(cat /application/php/var/run/php-fpm.pid) #平滑終止 kill -SIGINT $(cat /application/php/var/run/php-fpm.pid) #立刻終止
重啓php-fpm
kill -SIGUSR2 $(cat /application/php/var/run/php-fpm.pid) #平滑重啓
信號解釋:
SIGINT, SIGTERM 立刻終止
SIGQUIT 平滑終止
SIGUSR1 重新打開日誌文件
SIGUSR2 平滑重載所有worker進程並重新載入配置和二進制模塊