1、服务器初始化

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

2、安装编译php依赖的包

  1. 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又无法安装,所以就编译安装一个

  1. 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

  1. 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配置

  1.  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/

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

7、修改php.ini文件

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

8、启动fpm-fpm

  1. service fpm-start start

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

  1. echo -e '\nexport PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH\n' >> /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、一键安装脚本

  1. #!/bin/bash
  2. #安装php-7.1.12脚本
  3. err_echo(){
  4. echo -e "\033[41;37m[Error]: $1 \033[0m"
  5. exit 1
  6. }

  7. info_echo(){
  8. echo -e "\033[42;37m[Info]: $1 \033[0m"
  9. }

  10. check_file_is_exists(){
  11. if [ ! -f "/usr/local/src/$1" ];then
  12. info_echo "$1开始下载"
  13. fi
  14. }

  15. check_exit(){
  16. if [ $? -ne 0 ]; then
  17. err_echo "$1"
  18. exit 1
  19. fi
  20. }

  21. check_success(){
  22. if [ $? -eq 0 ];then
  23. info_echo "$1"
  24. fi
  25. }

  26. [ $(id -u) != "0" ] && err_echo "please run this script as root user." && exit 1

  27. function init_servers(){

  28. info_echo "开始初始化服务器"
  29. yum update -y
  30. yum install epel-release -y
  31. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  32. setenforce 0
  33.  
  34. info_echo "更换阿里源"
  35. yum install wget -y
  36. cp /etc/yum.repos.d/* /tmp
  37. rm -f /etc/yum.repos.d/*
  38. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
  39. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
  40. yum clean all

  41. }

  42. function install_package(){

  43. info_echo "开始安装系统必备依赖包"
  44. yum install ntpdate gcc gcc-c++ wget lsof lrzsz -y

  45. info_echo "开始安装php所需依赖包"
  46. 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
  47.  
  48. info_echo "开始安装nginx所需依赖包"
  49. yum install -y pcre pcre-devel zlib zlib-devel
  50. }

  51. function download_install_package(){

  52. if [ ! -f "/usr/local/src/php-7.1.12.tar.gz" ];then
  53. info_echo "开始下载php-7.1.12.tar.gz"
  54. wget -P /usr/local/src http://cn2.php.net/distributions/php-7.1.12.tar.gz
  55. check_success "php-7.1.12.tar.gz已下载至/usr/local/src目录"
  56. else
  57. info_echo "php-7.1.12.tar.gz已存在,不需要下载"
  58. fi

  59. }

  60. function install_mcrypt()
  61. {
  62. wget -P /usr/local/src https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
  63. cd /usr/local/src
  64. tar cvf libmcrypt-2.5.8.tar.gz
  65. cd libmcrypt-2.5.8
  66. ./configure
  67. make && make install
  68. }

  69. function install_php(){

  70. info_echo "开始安装php-7.1.12"
  71. sleep 2s
  72. cd /usr/local/src
  73. tar xvf /usr/local/src/php-7.1.12.tar.gz
  74. cd /usr/local/src/php-7.1.12
  75. ./configure --prefix=/usr/local/php \
  76. --with-config-file-path=/usr/local/php/etc \
  77. --enable-fpm \
  78. --with-fpm-user=bumblebee \
  79. --with-fpm-group=bumblebee \
  80. --enable-mysqlnd \
  81. --with-mysqli \
  82. --with-mysqli=mysqlnd \
  83. --with-pdo-mysql=mysqlnd \
  84. --enable-mysqlnd-compression-support \
  85. --with-iconv-dir \
  86. --with-freetype-dir \
  87. --with-jpeg-dir \
  88. --with-png-dir \
  89. --with-zlib \
  90. --with-readline \
  91. --with-libxml-dir \
  92. --enable-xml \
  93. --disable-rpath \
  94. --enable-bcmath \
  95. --enable-shmop \
  96. --enable-sysvsem \
  97. --enable-inline-optimization \
  98. --with-curl \
  99. --with-Core \
  100. --with-ctype \
  101. --enable-mbregex \
  102. --enable-mbstring \
  103. --enable-intl \
  104. --with-mcrypt \
  105. --with-libmbfl \
  106. --enable-ftp \
  107. --with-gd \
  108. --enable-gd-jis-conv \
  109. --enable-gd-native-ttf \
  110. --with-openssl \
  111. --enable-pcntl \
  112. --enable-sockets \
  113. --with-xmlrpc \
  114. --enable-zip \
  115. --enable-soap \
  116. --with-gettext \
  117. --enable-fileinfo \
  118. --enable-opcache \
  119. --with-pear \
  120. --enable-maintainer-zts \
  121. --without-gdbm
  122. check_exit "configure php-7.1.12失败"
  123. make && make install
  124. check_exit "make php-7.1.12失败"

  125. info_echo "开始配置php-7.1.12"

  126. 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
  127. cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

  128. sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /usr/local/php/etc/php.ini
  129. sed -i "s#`grep max_execution_time /usr/local/php/etc/php.ini`#max_execution_time = 300#g" /usr/local/php/etc/php.ini
  130. sed -i "s#`grep post_max_size /usr/local/php/etc/php.ini`#post_max_size = 32M#g" /usr/local/php/etc/php.ini
  131. sed -i "s#`grep max_input_time\ = /usr/local/php/etc/php.ini`#max_input_time = 300#g" /usr/local/php/etc/php.ini
  132. sed -i "s#`grep memory_limit /usr/local/php/etc/php.ini`#memory_limit = 128M#g" /usr/local/php/etc/php.ini
  133. sed -i "s#`grep post_max_size /usr/local/php/etc/php.ini`#post_max_size = 32M#g" /usr/local/php/etc/php.ini
  134. filename=`find /usr/local/php/lib/php/extensions -name opcache.so`
  135. sed -i '/\[opcache\]/azend_extension=$filename' /usr/local/php/etc/php.ini
  136. sed -i "s/user = php-fpm/user = bumblebee/g" /usr/local/php/etc/php-fpm.d/www.conf
  137. sed -i "s/group = php-fpm/group = bumblebee/g" /usr/local/php/etc/php-fpm.d/www.conf
  138. cp /usr/local/src/php-7.1.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  139. chmod +x /etc/init.d/php-fpm
  140. }

  141. function main(){

  142. init_servers
  143. install_package
  144. download_install_package
  145. install_mcrypt
  146. install_php
  147.  
  148. }

  149. main

Centos6.10编译安装php-7.1.12并安装redis模块的更多相关文章

  1. 图解Windows 10下Visual Studio Code的下载和安装

    1. 百度搜索“Visual Studio Code”,如下图所示: 2. 点击第一个搜索结果项,进入官方网站,然后点击“Download for Windows”,如下图所示: 3. 进入提示下载页 ...

  2. Windows系统Git安装教程(详解Git安装过程)

    Windows系统Git安装教程(详解Git安装过程)   今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序   到Git官网下载,网站地址: ...

  3. Centos6.4编译安装Node.js(已验证)

    1.准备源文件包 [felix@MyTerminal Downloads]$ mv node-6.5.0 node [felix@MyTerminal Downloads]$ ls node node ...

  4. centos6.5-7编译安装Ansible详细部署

    一.基础介绍==========================================================================================ansi ...

  5. centos6.10环境安装nodejs8.2.1

    操作系统为centos6.10,在安装nodejs最新版本的时候报错,依赖glibc的高版本和gcc高版本,还要安装python2.7,操作系统上已经跑了很多应用,升级gcc风险过大,采用相对保守的方 ...

  6. 使用docker安装centos6.10镜像并安装新版gcc

    使用docker安装centos6.10镜像并安装新版gcc 环境:Linux Ubuntu 16.04.7 LTS 目录 使用docker安装centos6.10镜像并安装新版gcc 使用docke ...

  7. 最新Mac OS X 10.12.1 安装cocoapods及使用详解

    cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...

  8. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    [准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...

  9. centos6.5编译安装lamp开发环境

    一.系统以及软件的准备 系统及编译安装包的下载地址:http://pan.baidu.com/s/1jIjqinc   密码:ghc2 说明:由于centos6.5是分卷压缩的,且压缩为三个压缩包,所 ...

随机推荐

  1. linux shell中如何批量添加一行内容到某些文件的末尾?

    答:先使用find找出要指定的某些文件,然后使用xargs和sed工具将内容插入到这些文件的末尾 find . -name 'filename*' | xargs sed -i '$a\added-c ...

  2. (6)Flask项目之会员注册页面

    一.添加注册页面的路由 修改app/home/views.py内容,追加注册("/regist/")页面的路由: # coding:utf8 from . import home ...

  3. Blob/DataURL/canvas/image的相互转换

    函数都比较简单,直接看就ok了 /*-----------------------------------------------------------------------*/ // canva ...

  4. (转)自动微分(Automatic Differentiation)简介——tensorflow核心原理

    现代深度学习系统中(比如MXNet, TensorFlow等)都用到了一种技术——自动微分.在此之前,机器学习社区中很少发挥这个利器,一般都是用Backpropagation进行梯度求解,然后进行SG ...

  5. Java之浮点数运算

    浮点数运算和整数运算相比,只能进行加减乘除这些数值运算,不能做位运算和移位运算. 在计算机中,浮点数虽然表示的范围很大,但是浮点数有个非常重要的特点,就是浮点数常常无法精确表示 举例 浮点数0.1在计 ...

  6. 【SSH进阶之路】Hibernate映射——多对多关联映射(八)

    上篇博文[SSH进阶之路]Hibernate映射——一对多关联映射(七),我们介绍了一对多关联映射,它是多对多关联映射的基础. 多对多映射是现实生活中最常见的映射,也是最容易理解的映射.废话少说,直接 ...

  7. ou can mix require and export. You can't mix import and module.exports.

    ou can mix require and export. You can't mix import and module.exports.

  8. mysql类型转换函数convert与cast的用法

    原文地址:https://blog.csdn.net/kouwoo/article/details/45535733 简单介绍下mysql数据库中用于类型转换的二个函数,convert与cast函数, ...

  9. react-redux源码学习

    React-redux 源码学习 version 7.0.3 目录 Provider connect mapStateToProps mapDispatchToProps mergeProps opt ...

  10. vue-cli构建的项目手动添加eslint配置

    一.package.json里配置添加 1.scripts里添加快捷eslint检查命令 "lint": "eslint --ext .js,.vue src" ...