php

cat <<EOF

*************************************
* 即 将 进 行 的 操 作 *
* 3. php -- php 安装 *
*************************************

EOF


#http://cn2.php.net/releases/
#http://cn2.php.net/distributions/php-5.6.20.tar.bz2


cd /root
yum -y groupinstall "development tools"
yum -y install libxml2-devel openssl-devel bzip2-devel libcurl-devel gd gd-devel libmcrypt-devel
wget http://cn2.php.net/distributions/php-5.6.20.tar.bz2
tar jxvf php-5.6.20.tar.bz2
cd php-5.6.20

./configure --prefix=/usr/local/php-5.6.20
--with-config-file-path=/etc/
--with-openssl
--enable-fpm
--with-bz2
--enable-sockets
--enable-sysvshm
--enable-mbstring
--with-freetype-dir=/usr
--with-jpeg-dir
--with-png-dir
--with-zlib-dir
--with-libxml-dir=/usr/lib64/
--enable-xml
--with-mhash
--with-mcrypt
--with-curl
--with-gd
--enable-zip
--enable-pcntl
--enable-pdo
--with-pdo-mysql
--disable-cgi
--with-fpm-user=www
--with-fpm-group=www
--with-zlib
--with-jpeg-dir=shared
--with-png-dir=shared
--enable-gd-native-ttf
--enable-ftp
--disable-ipv6
--with-iconv-dir=/usr/local
--enable-calendar
--with-gettext
--with-pdo-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-mysql=mysqlnd
--enable-dom
--with-libdir=lib64
--enable-bcmath

make

v=$?
if [ $v -gt 0 ]; then
echo "1.php 编译有错误,清检查";
exit 1
else
echo "1.php 编译ok"
echo "php 编译ok" >>/root/install_php.log
fi
sleep 5

make install

ret=$?
if [ $ret -gt 0 ]; then
echo "2.php 编译安装有错误,清检查";
exit 1
else
echo "2.php 编译安装ok"
echo "php 编译安装ok" >>/root/install_php.log
fi
sleep 5


ln -sv /usr/local/php-5.6.20/bin/php /bin
ln -sv /usr/local/php-5.6.20/bin/phpize /bin
ln -sv /usr/local/php-5.6.20/bin/php-config /bin
cp php.ini-production /etc/php.ini
cd /usr/local/php-5.6.20/etc/
cp php-fpm.conf.default php-fpm.conf


echo "php 安装成功,请【再次】确认已经上传 php 服务脚本"

chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
service php-fpm start
ps -ef | grep php-fpm

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/local/php-5.6.20
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