zoukankan      html  css  js  c++  java
  • 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
    
    
  • 相关阅读:
    解决<c:if>无else的问题
    极限挑战----3小时完成OA系统(失败)
    jstl的if标签和forEach标签的解析
    EL表达式
    JSP静态包含和动态包含的区别
    JSP九大隐式对象和四大域对象-----面试
    mybatis学习01--基础认识
    怎样将本地的代码上传到github
    随机数的生成,静态导入,可变参数的方法,方法重载,浮点数的比较
    zookeeper学习2
  • 原文地址:https://www.cnblogs.com/eddie1127/p/11821197.html
Copyright © 2011-2022 走看看