zoukankan      html  css  js  c++  java
  • php源码编译安装脚本

    #!/bin/bash
    #
    #********************************************************************
    #Author:            Wuvikr
    #QQ:                744123155
    #Date:              2020-12-01
    #FileName           php_src_install.sh
    #URL:               http://www.wuvikr.top
    #Description        The test script
    #Copyright (C):     2020 All rights reserved
    #********************************************************************
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    
    CPU=`lscpu | sed -rn 's/^CPU(s)[^0-9]+([0-9]+)/1/p'`
    Tar=php-7.4.12.tar.bz2
    Version=${Tar%.tar*}
    Dir=/apps/php74
    
    install (){
        # 检测安装包
        [ -f $Tar ] && tar xvf $Tar || { echo -e '33[1;31m当前目录没有找到相应的安装包,请提前准备好相关包!33[0m'; exit 1; }
    
        # 安装相关依赖包
        yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel openssl-devel
    
        # 切换目录 
        cd $Version
    
        # 编译安装
        ./configure 
        --prefix=$Dir 
        --enable-mysqlnd 
        --with-mysqli=mysqlnd 
        --with-pdo-mysql=mysqlnd 
        --with-openssl 
        --with-zlib 
        --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 $CPU && make install
    
    }
    
    Configuration (){
    
        #准备PATH变量
        echo "PATH=$Dir/bin:$PATH" > /etc/profile.d/php.sh
    
        #准备php配置文件和启动文件
        cp php.ini-production /etc/php.ini
        cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
        cp $Dir/etc/php-fpm.conf.default $Dir/etc/php-fpm.conf
        cp $Dir/etc/php-fpm.d/www.conf.default $Dir/etc/php-fpm.d/www.conf
    
        # 修改php-fpm配置文件
        ## 修改用户组
        sed -ri 's#^(user.*)nobody#1nginx#' $Dir/etc/php-fpm.d/www.conf
        sed -ri 's#^(group.*)nobody#1nginx#' $Dir/etc/php-fpm.d/www.conf
        ## 开启ping和status页面
        sed -ri 's#^;(pm.status.*)#1#' $Dir/etc/php-fpm.d/www.conf
        sed -ri 's#^;(ping.path.*)#1#' $Dir/etc/php-fpm.d/www.conf
    
        #开启opcache加速
        mkdir /etc/php.d
        cat > /etc/php.d/opcache.ini <<EOF
    [opcache]
    zend_extension=opcache.so               
    opcache.enable=1
    EOF
    
        # 重新加载并启动php-fpm
        systemctl daemon-reload
        systemctl enable --now php-fpm.service 
    
    }
    
    install
    Configuration
    
    echo -e "33[1;31m${Version}安装成功!33[0m"
    
    
  • 相关阅读:
    一个完整的Http请求
    struts2回显指定的错误信息
    Struts2中的OGNL通配符
    hibernate日常BUG总结
    Hibernate中的GetCurrentSession()方法
    hibernate query.list() 返回的数据类型
    xp远程桌面登陆需要身份验证问题解决
    spring和hibernate整合时无法自动建表
    Spring的scope="prototype"属性
    给程序员的九点建议
  • 原文地址:https://www.cnblogs.com/wuvikr/p/14066904.html
Copyright © 2011-2022 走看看