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="\033[1;31m"
COLOREND="\033[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 "\033[1;32m php-fpm install OK \033[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 "\033[1;32m Congratulation!php-fpm install completed! Enjoy it. \033[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 "\033[1;32m php-fpm service start success \033[0m"
else
echo -e "${COLORBEG} php-fpm service start failed,please check ${COLOREND}"
fi

最新文章

  1. 【codeforces 148D】 Bag of mice
  2. Linux Crontab 安装使用详细说明
  3. c#中的事件
  4. 细菌觅食算法-python实现
  5. C Primer Plus(第五版)4
  6. MDX : Non Empty v/s NonEmpty
  7. TextView &amp; EditText
  8. js搜索框 js仿百度搜索 js下拉框 jQuery.Autocomplete使用
  9. Android 在广播接收器中弹出对话框
  10. 20169210《Linux内核原理与分析》第三周作业
  11. Delphi Memo的记事本功能
  12. LightOJ 1135(线段树)
  13. 关于SIGSLOT的一个简单的程序
  14. webapi中的自定义路由约束
  15. MySQL数据表的创建、查看、插入
  16. 【批处理学习笔记】第十三课:常用dos命令(3)
  17. linux(centos)常用命令
  18. 2D-2D:对极几何 基础矩阵F 本质矩阵E 单应矩阵H
  19. 八 ip和子网详解
  20. Nuxt.js 从入门到放弃

热门文章

  1. SQL Server 迁移数据库 (一)导入和导出
  2. 前端Vue项目——初始化及导航栏
  3. Linux性能优化实战学习笔记:第三十四讲
  4. 解决VMware虚拟机中centos 7无法上网的问题
  5. AtCoder Grand Contest 039 简要题解
  6. leetcode 674. 最长连续递增序列
  7. 使用WCF-SQL一次Insert多个表
  8. linux 成功安装oracle后,为其创建一个登录账户
  9. SCCM+WSUS的方式分发补丁
  10. 【CF285E】Positions in Permutations(动态规划,容斥)