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 '\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、一键安装脚本
- #!/bin/bash
- #安装php-7.1.12脚本
- err_echo(){
- echo -e "\033[41;37m[Error]: $1 \033[0m"
- exit 1
- }
-
- info_echo(){
- echo -e "\033[42;37m[Info]: $1 \033[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
Centos6.10编译安装php-7.1.12并安装redis模块的更多相关文章
- 图解Windows 10下Visual Studio Code的下载和安装
1. 百度搜索“Visual Studio Code”,如下图所示: 2. 点击第一个搜索结果项,进入官方网站,然后点击“Download for Windows”,如下图所示: 3. 进入提示下载页 ...
- Windows系统Git安装教程(详解Git安装过程)
Windows系统Git安装教程(详解Git安装过程) 今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序 到Git官网下载,网站地址: ...
- Centos6.4编译安装Node.js(已验证)
1.准备源文件包 [felix@MyTerminal Downloads]$ mv node-6.5.0 node [felix@MyTerminal Downloads]$ ls node node ...
- centos6.5-7编译安装Ansible详细部署
一.基础介绍==========================================================================================ansi ...
- centos6.10环境安装nodejs8.2.1
操作系统为centos6.10,在安装nodejs最新版本的时候报错,依赖glibc的高版本和gcc高版本,还要安装python2.7,操作系统上已经跑了很多应用,升级gcc风险过大,采用相对保守的方 ...
- 使用docker安装centos6.10镜像并安装新版gcc
使用docker安装centos6.10镜像并安装新版gcc 环境:Linux Ubuntu 16.04.7 LTS 目录 使用docker安装centos6.10镜像并安装新版gcc 使用docke ...
- 最新Mac OS X 10.12.1 安装cocoapods及使用详解
cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...
- 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 ...
- centos6.5编译安装lamp开发环境
一.系统以及软件的准备 系统及编译安装包的下载地址:http://pan.baidu.com/s/1jIjqinc 密码:ghc2 说明:由于centos6.5是分卷压缩的,且压缩为三个压缩包,所 ...
随机推荐
- linux shell中如何批量添加一行内容到某些文件的末尾?
答:先使用find找出要指定的某些文件,然后使用xargs和sed工具将内容插入到这些文件的末尾 find . -name 'filename*' | xargs sed -i '$a\added-c ...
- (6)Flask项目之会员注册页面
一.添加注册页面的路由 修改app/home/views.py内容,追加注册("/regist/")页面的路由: # coding:utf8 from . import home ...
- Blob/DataURL/canvas/image的相互转换
函数都比较简单,直接看就ok了 /*-----------------------------------------------------------------------*/ // canva ...
- (转)自动微分(Automatic Differentiation)简介——tensorflow核心原理
现代深度学习系统中(比如MXNet, TensorFlow等)都用到了一种技术——自动微分.在此之前,机器学习社区中很少发挥这个利器,一般都是用Backpropagation进行梯度求解,然后进行SG ...
- Java之浮点数运算
浮点数运算和整数运算相比,只能进行加减乘除这些数值运算,不能做位运算和移位运算. 在计算机中,浮点数虽然表示的范围很大,但是浮点数有个非常重要的特点,就是浮点数常常无法精确表示 举例 浮点数0.1在计 ...
- 【SSH进阶之路】Hibernate映射——多对多关联映射(八)
上篇博文[SSH进阶之路]Hibernate映射——一对多关联映射(七),我们介绍了一对多关联映射,它是多对多关联映射的基础. 多对多映射是现实生活中最常见的映射,也是最容易理解的映射.废话少说,直接 ...
- 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.
- mysql类型转换函数convert与cast的用法
原文地址:https://blog.csdn.net/kouwoo/article/details/45535733 简单介绍下mysql数据库中用于类型转换的二个函数,convert与cast函数, ...
- react-redux源码学习
React-redux 源码学习 version 7.0.3 目录 Provider connect mapStateToProps mapDispatchToProps mergeProps opt ...
- vue-cli构建的项目手动添加eslint配置
一.package.json里配置添加 1.scripts里添加快捷eslint检查命令 "lint": "eslint --ext .js,.vue src" ...