zoukankan      html  css  js  c++  java
  • Centos6.10编译安装php-7.1.12并安装redis模块

    1、服务器初始化

    yum update -y
    yum install epel-release -y
    yum install gcc gcc-c++ wget lsof lrzsz telnet -y

    2、安装编译php依赖的包

    yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel openjpeg-devel mysql-devel mysql

    3、编译安装mcrypt

     php编译时候会报mcrypt.h not found,这个库作用就是用来加密的,yum又无法安装,所以就编译安装一个

    wget -P /usr/local/src https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
    cd /usr/local/src
    tar cvf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure
    make && make install

    4、编译安装php-7.1.12

    cd /usr/local/src
    tar xvf /usr/local/src/php-7.1.12.tar.gz
    cd /usr/local/src/php-7.1.12
    ./configure --prefix=/usr/local/php
    --with-config-file-path=/usr/local/php/etc
    --enable-fpm
    --with-fpm-user=bumblebee
    --with-fpm-group=bumblebee
    --enable-mysqlnd
    --with-mysqli
    --with-mysqli=mysqlnd
    --with-pdo-mysql=mysqlnd
    --enable-mysqlnd-compression-support
    --with-iconv-dir
    --with-freetype-dir
    --with-jpeg-dir
    --with-png-dir
    --with-zlib
    --with-readline
    --with-libxml-dir
    --enable-xml
    --disable-rpath
    --enable-bcmath
    --enable-shmop
    --enable-sysvsem
    --enable-inline-optimization
    --with-curl
    --with-Core
    --with-ctype
    --enable-mbregex
    --enable-mbstring
    --enable-intl
    --with-mcrypt
    --with-libmbfl
    --enable-ftp
    --with-gd
    --enable-gd-jis-conv
    --enable-gd-native-ttf
    --with-openssl
    --enable-pcntl
    --enable-sockets
    --with-xmlrpc
    --enable-zip
    --enable-soap
    --with-gettext
    --enable-fileinfo
    --enable-opcache
    --with-pear
    --enable-maintainer-zts
    --without-gdbm

    make && make install

    5、修改php配置

      cp /usr/local/src/php-7.1.12/php.ini-production /usr/local/php/etc/php.ini && cd /usr/local/php/etc && cp php-fpm.conf.default php-fpm.conf
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

    sed -i "s/;date.timezone =/date.timezone = Asia/Shanghai/g" /usr/local/php/etc/php.ini
    sed -i "s#`grep max_execution_time /usr/local/php/etc/php.ini`#max_execution_time = 300#g" /usr/local/php/etc/php.ini
    sed -i "s#`grep post_max_size /usr/local/php/etc/php.ini`#post_max_size = 32M#g" /usr/local/php/etc/php.ini
    sed -i "s#`grep max_input_time = /usr/local/php/etc/php.ini`#max_input_time = 300#g" /usr/local/php/etc/php.ini
    sed -i "s#`grep memory_limit /usr/local/php/etc/php.ini`#memory_limit = 128M#g" /usr/local/php/etc/php.ini
    sed -i "s#`grep post_max_size /usr/local/php/etc/php.ini`#post_max_size = 32M#g" /usr/local/php/etc/php.ini

    sed -i "s/user = php-fpm/user = bumblebee/g" /usr/local/php/etc/php-fpm.d/www.conf
    sed -i "s/group = php-fpm/group = bumblebee/g" /usr/local/php/etc/php-fpm.d/www.conf
     cp /usr/local/src/php-7.1.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
     chmod +x /etc/init.d/php-fpm

    6、安装redis模块

           去github下载对应的包 https://github.com/phpredis/phpredis/releases/

      tar xvf phpredis-3.1.4.tar.gz
    cd phpredis-3.1.4
    ./configure
    phpize
    make
    make install

    7、修改php.ini文件

     [opcache]
    zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20160303/opcache.so  #不增加这行,opcache模块不生效,网上的资料太坑了
    php.ini文件末尾增加
    extension=redis.so

    8、启动fpm-fpm

     service fpm-start start

    9、设置php环境变量并查看模块

     echo -e '
    export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH
    ' >> /etc/profile && source /etc/profile

    ##查看php已安装的模块
    [root@server etc]# php -m
    [PHP Modules]
    bcmath
    Core
    ctype
    curl
    date
    dom
    fileinfo
    filter
    ftp
    gd
    gettext
    hash
    iconv
    intl
    json
    libxml
    mbstring
    mcrypt
    mysqli
    mysqlnd
    openssl
    pcntl
    pcre
    PDO
    pdo_mysql
    pdo_sqlite
    Phar
    posix
    readline
    redis
    Reflection
    session
    shmop
    SimpleXML
    soap
    sockets
    SPL
    sqlite3
    standard
    sysvsem
    tokenizer
    xml
    xmlreader
    xmlrpc
    xmlwriter
    Zend OPcache
    zip
    zlib

    [Zend Modules]
    Zend OPcache

    10、一键安装脚本

    #!/bin/bash
    #安装php-7.1.12脚本
    err_echo(){
        echo -e "33[41;37m[Error]: $1 33[0m"
        exit 1
    }
    ​
    info_echo(){
        echo -e "33[42;37m[Info]: $1 33[0m"
    }
    ​
    check_file_is_exists(){
        if [ ! -f "/usr/local/src/$1" ];then
            info_echo "$1开始下载"
        fi
    }
    ​
    check_exit(){
        if [ $? -ne 0 ]; then
            err_echo "$1"
            exit 1
        fi
    }
    ​
    check_success(){
        if [ $? -eq 0 ];then
            info_echo "$1"
        fi
    }
    ​
    [ $(id -u) != "0" ] && err_echo "please run this script as root user." && exit 1
    ​
    function init_servers(){
    ​
        info_echo "开始初始化服务器"
        yum update -y
        yum install epel-release -y
        sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
        setenforce 0
        
        info_echo "更换阿里源"
        yum install wget -y
        cp /etc/yum.repos.d/* /tmp
        rm -f /etc/yum.repos.d/*
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
        wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
        yum clean all
    ​
    }
    ​
    function install_package(){
    ​
        info_echo "开始安装系统必备依赖包"
        yum install ntpdate gcc gcc-c++ wget lsof lrzsz -y
    ​
        info_echo "开始安装php所需依赖包"
        yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel openjpeg-devel mysql mysql-devel
        
        info_echo "开始安装nginx所需依赖包"
        yum install -y pcre pcre-devel zlib zlib-devel
    }
    ​
    function download_install_package(){
    ​
        if [ ! -f "/usr/local/src/php-7.1.12.tar.gz" ];then
            info_echo "开始下载php-7.1.12.tar.gz"
            wget -P /usr/local/src http://cn2.php.net/distributions/php-7.1.12.tar.gz
            check_success "php-7.1.12.tar.gz已下载至/usr/local/src目录"
        else
            info_echo "php-7.1.12.tar.gz已存在,不需要下载"
        fi
    ​
    }
    ​
    function install_mcrypt()
    {
      wget -P /usr/local/src https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
      cd /usr/local/src
      tar cvf libmcrypt-2.5.8.tar.gz
      cd libmcrypt-2.5.8
      ./configure
      make && make install
    }
    ​
    function install_php(){
    ​
        info_echo "开始安装php-7.1.12"
        sleep 2s
        cd /usr/local/src
        tar xvf /usr/local/src/php-7.1.12.tar.gz
        cd /usr/local/src/php-7.1.12
        ./configure --prefix=/usr/local/php 
        --with-config-file-path=/usr/local/php/etc 
        --enable-fpm 
        --with-fpm-user=bumblebee 
        --with-fpm-group=bumblebee 
        --enable-mysqlnd 
        --with-mysqli 
        --with-mysqli=mysqlnd 
        --with-pdo-mysql=mysqlnd 
        --enable-mysqlnd-compression-support 
        --with-iconv-dir 
        --with-freetype-dir 
        --with-jpeg-dir 
        --with-png-dir 
        --with-zlib 
        --with-readline 
        --with-libxml-dir 
        --enable-xml 
        --disable-rpath 
        --enable-bcmath 
        --enable-shmop 
        --enable-sysvsem 
        --enable-inline-optimization 
        --with-curl 
        --with-Core 
        --with-ctype 
        --enable-mbregex 
        --enable-mbstring 
        --enable-intl 
        --with-mcrypt 
        --with-libmbfl 
        --enable-ftp 
        --with-gd 
        --enable-gd-jis-conv 
        --enable-gd-native-ttf 
        --with-openssl 
        --enable-pcntl 
        --enable-sockets 
        --with-xmlrpc 
        --enable-zip 
        --enable-soap 
        --with-gettext 
        --enable-fileinfo 
        --enable-opcache 
        --with-pear 
        --enable-maintainer-zts 
        --without-gdbm
        check_exit "configure php-7.1.12失败"
        make && make install
        check_exit "make php-7.1.12失败"
    ​
        info_echo "开始配置php-7.1.12"
    ​
        cp /usr/local/src/php-7.1.12/php.ini-production /usr/local/php/etc/php.ini && cd /usr/local/php/etc && cp php-fpm.conf.default php-fpm.conf
        cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    ​
        sed -i "s/;date.timezone =/date.timezone = Asia/Shanghai/g" /usr/local/php/etc/php.ini
        sed -i "s#`grep max_execution_time /usr/local/php/etc/php.ini`#max_execution_time = 300#g" /usr/local/php/etc/php.ini
        sed -i "s#`grep post_max_size /usr/local/php/etc/php.ini`#post_max_size = 32M#g" /usr/local/php/etc/php.ini
        sed -i "s#`grep max_input_time = /usr/local/php/etc/php.ini`#max_input_time = 300#g" /usr/local/php/etc/php.ini
        sed -i "s#`grep memory_limit /usr/local/php/etc/php.ini`#memory_limit = 128M#g" /usr/local/php/etc/php.ini
        sed -i "s#`grep post_max_size /usr/local/php/etc/php.ini`#post_max_size = 32M#g" /usr/local/php/etc/php.ini
        filename=`find /usr/local/php/lib/php/extensions -name opcache.so`
        sed -i '/[opcache]/azend_extension=$filename' /usr/local/php/etc/php.ini 
        sed -i "s/user = php-fpm/user = bumblebee/g" /usr/local/php/etc/php-fpm.d/www.conf
        sed -i "s/group = php-fpm/group = bumblebee/g" /usr/local/php/etc/php-fpm.d/www.conf
        cp /usr/local/src/php-7.1.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
        chmod +x /etc/init.d/php-fpm
    }
    ​
    function main(){
    ​
        init_servers
        install_package
        download_install_package
        install_mcrypt
        install_php
        
        
    }
    ​
    main
    

     

  • 相关阅读:
    【YBTOJ】【Luogu P2605】[ZJOI2010]基站选址
    【CodeForces 261D】Maxim and Increasing Subsequence
    【Luogu P4140】奇数国
    【YBTOJ】【Luogu P6474】[NOI Online #2 入门组] 荆轲刺秦王
    【YBTOJ】【Luogu P4667】[BalticOI 2011 Day1]Switch the Lamp On
    Tools分类随笔链接整理贴(不定期更新)
    Vs2012安装介绍
    VC 修改对话框默认类名
    扫雷小游戏_通过爆破手段强制胜利
    C++ STL(十)算法
  • 原文地址:https://www.cnblogs.com/uglyliu/p/11066563.html
Copyright © 2011-2022 走看看