php-fpm编译安装脚本

  PHP是开源、轻量级、高效的开发语言,特别适合web项目开发,在中小型互联网公司中常用于开发web后端。PHP常与Nginx及MySQL数据库结合,搭建LNMP环境。以下为centos7系统下php-fpm的一键编译安装脚本,代码如下:

#!/bin/bash
#
#********************************************************************
#Author:        Eddie.Peng
#URL:           https://www.cnblogs.com/eddie1127/
#Date:          2019-10-18
#FileName:      php-fpm_install.sh
#Description:   The script for install php-fpm
#********************************************************************

# Set colour
COLORBEG="33[1;31m"
COLOREND="33[0m"

# Check if user is root
if [ $(id -u) !=0 ];then
	echo -e "${COLORBEG} Error! You must be root to run this script. ${COLOREND}"
	exit 10
fi

clear
echo "========================================================================"
echo " "
echo "The script for install php-fpm"
echo " "
echo "========================================================================="


# Install dependent software packge
yum -y install epel-release wget gcc 
	curl-devel openssl-devel libxml2-devel 
	bzip2-devel libmcrypt-devel php-gd php-mysqlnd

#Check files if exits
echo "========================== Check files ===================================="
CUR_DIR=$(pwd)
NAME=php-7.3.10
FULL_NAME=${CUR_DIR}/${NAME}.tar.xz
INSTALL_PATH=/usr/local/php

cd $CUR_DIR
if [ -s $FULL_NAME ];then
	echo "$FULL_NAME found!"
else
	echo -e "${COLORBEG} $FULL_NAME not found!!! download now... ${COLOREND}"
	wget -c https://www.php.net/distributions/$NAME.tar.xz
fi

#Install php-fpm
echo "========================== Install php-fpm ===================================="
cd $CUR_DIR
tar -xf $FULL_NAME -C /usr/local/src
cd /usr/local/src/$NAME
./configure --prefix=$INSTALL_PATH 
--enable-mysqlnd 
--with-mysqli=mysqlnd 
--with-pdo-mysql=mysqlnd 
--with-curl 
--with-openssl 
--with-freetype-dir 
--with-jpeg-dir 
--with-png-dir 
--with-zlib 
--with-libxml-dir=/usr 
--with-config-file-path=/etc 
--with-config-file-scan-dir=/etc/php.d 
--enable-mbstring 
--enable-xml 
--enable-sockets 
--enable-fpm 
--enable-maintainer-zts 
--disable-fileinfo

make -j $(nproc) && make install

if [ $? -ne 0 ];then
	echo -e "${COLORBEG} Error!make failed,please check. ${COLOREND}"
	exit 20
fi

#Prepare configuration files
cp $INSTALL_PATH/etc/php-fpm.conf.default $INSTALL_PATH/etc/php-fpm.conf
cp $INSTALL_PATH/etc/php-fpm.d/www.conf.default $INSTALL_PATH/etc/php-fpm.d/www.conf
cp /usr/local/src/$NAME/php.ini-production /etc/php.ini

#Open opcache extension
mkdir /etc/php.d
cat > /etc/php.d/opcache.ini << EOF
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
EOF

#Check install
echo "========================== Check install ==========================================="
clear
INSTALL=""

echo "Checking..."
if [ -s $INSTALL_PATH/sbin/php-fpm ] && [ -s $INSTALL_PATH/etc/php-fpm.conf ] && [ -s /etc/php.ini ];then
	echo -e "33[1;32m php-fpm install OK 33[0m"
	INSTALL="OK"
else
	echo -e "${COLORBEG} Error! $INSTALL_PATH/etc/php-fpm.conf not found! php-fpm install failed,please check. ${COLOREND}"
fi

if [ "$INSTALL" = "OK" ];then
	echo -e "33[1;32m Congratulation!php-fpm install completed! Enjoy it. 33[0m"
	echo "================================================================================"
	echo "The path of some dirs:"
	echo "php-fpm_exec_dir: $INSTALL_PATH/sbin"
	echo "php-fpm config_dir: $INSTALL_PATH/etc"
	echo "php configfile: /etc/php.ini"
	echo "================================================================================="
else
	echo -e "${COLORBEG} Sorry,php-fpm install Failed! Please check and reinstall. ${COLOREND}"
	exit 30
fi

#Add php-fpm service on start up
cp /usr/local/src/$NAME/sapi/fpm/php-fpm.service /usr/lib/systemd/system
systemctl daemon-reload
systemctl enable --now php-fpm.service

#Check startup
if [ $? -eq 0 ];then 
	echo -e "33[1;32m php-fpm service start success 33[0m"
else
	echo -e "${COLORBEG} php-fpm service start failed,please check ${COLOREND}"
fi

原文地址:https://www.cnblogs.com/eddie1127/p/11821197.html