1.安装php依赖库
#Ubuntu安装:
sudo apt-get update
sudo apt-get install gcc autoconf openssl libssl-dev curl libcurl4-gnutls-dev libjpeg-dev libpng16-dev freetype libpcre3 libpcre3-dev libxslt1.1 libxslt1-dev bzip2 libbz2-dev
#centos安装:
yum -y install gcc openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel
2.建立目录,下载php安装包
①php7.0.20,安装位置/use/local/php
cd /usr/local
mkdir php
cd /usr/local/php
wget http://cn2.php.net/distributions/php-7.0.20.tar.gz
tar -zxvf php-7.0.20.tar.gz
mv php-7.0.20 php
mkdir php-7.0.20
cd php
./configure --prefix=/usr/local/php/php-7.0.20 --with-config-file-path=/usr/local/php/php-7.0.20/etc --with-mysqli=mysqlnd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir=/usr --enable-opcache --enable-ftp --enable-pcntl --enable-sockets --enable-zip --enable-xml --enable-shmop --enable-sysvsem --enable-mbregex --enable-fpm --enable-bcmath --enable-inline-optimization --enable-mbstring --with-gd --enable-gd-native-ttf --enable-soap --disable-rpath --with-curl --with-xmlrpc --with-openssl --with-mhash --with-zlib --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --without-pear --enable-maintainer-zts
make
make install
cp php.ini-production /usr/local/php/php-7.0.20/etc/php.ini
cp /usr/local/php/php-7.0.20/etc/php-fpm.conf.default /usr/local/php/php-7.0.20/etc/php-fpm.conf
cp /usr/local/php/php-7.0.20/etc/php-fpm.d/www.conf.default /usr/local/php/php-7.0.20/etc/php-fpm.d/www.conf
ln -s /usr/local/php/php-7.0.20 /usr/php
修改php.ini
修改www.conf
②php7.2.1
wget http://cn2.php.net/distributions/php-7.2.1.tar.gz
./configure --prefix=/usr/local/php/php-7.2.1 --with-config-file-path=/usr/local/php/php-7.2.1/etc --with-mysqli=mysqlnd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir=/usr --enable-opcache --enable-ftp --enable-pcntl --enable-sockets --enable-zip --enable-xml --enable-shmop --enable-sysvsem --enable-mbregex --enable-fpm --enable-bcmath --enable-inline-optimization --enable-mbstring --with-gd --enable-soap --disable-rpath --with-curl --with-xmlrpc --with-openssl --with-mhash --with-zlib --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --without-pear --enable-maintainer-zts
3.设置环境变量
vim /etc/profile
# set php enviroment
PATH=/usr/php/bin:$PATH
export PATH
source /etc/profile
4.在/etc/init.d/目录建立php-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
prefix=/usr/php
exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN --daemonize $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
status)
if [ ! -r $php_fpm_PID ] ; then
echo "php-fpm is stopped"
exit 0
fi
PID=`cat $php_fpm_PID`
if ps -p $PID | grep -q $PID; then
echo "php-fpm (pid $PID) is running..."
else
echo "php-fpm dead but pid file exists"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"
exit 1
;;
esac