centos7下搭建nginx+php7.1+mariadb+memcached+redis
一.环境准备
1.首先介绍一下环境,以及我们今天的主角们
我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是成了新的分支,但是还是像mysql一样用),
php7.1.0(版本无所谓,都是7版本),nginx1.10(我们安装的是稳定版而没有一味的追求新),memcached,和redis可以随机选择一个,当然全安装也没有干扰
2.软件包下载
1)mariadb软件包(yum安装,编译安装因为boost问题挂掉了而且耗时极其长,放弃了)
首先添加mariadb的yum源 cd /etc/yum.repos.d/
vim /etc/yum.repos.d/MariaDB.repo
添加下列内容 # MariaDB 10.0 CentOS repository list - created -- : UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=
2)php7.10软件包
wget https://downloads.php.net/~davey/php-7.1.0.tar.gz
3)nginx软件包
wget http://nginx.org/download/nginx-1.10.1.tar.gz
nginx还需要下载ngx_http_upstream_consistent_hash(多台缓存服务器的时候使用一致性hash算法需要)
和ngx_http_redis(支持redis)(--add-dynamic-module=PATH时候等于他们的路径即可)
cd /usr/local/src/
#下载 ngx_http_consistent_hash 和
wget https://codeload.github.com/replay/ngx_http_consistent_hash/zip/master unzip master
#解压之后的文件夹名字
ngx_http_consistent_hash-maste
wget http://people.freebsd.org/~osa/ngx_http_redis-0.3.8.tar.gz tar zxvf ngx_http_redis-0.3..tar.gz #解压之后的文件夹名字
ngx_http_redis-0.3.8
4)memcached软件包(以及php支持memcached的php7版)(需要libevent libevent-devel)
#memcached
wget http://memcached.org/files/memcached-1.4.31.tar.gz #memcache for php7
wget https://github.com/websupport-sk/pecl-memcache/archive/php7.zip
5)redis软件包以及redis-php7包
#redis
wget http://download.redis.io/releases/redis-3.2.3.tar.gz #redis for php7
wget https://codeload.github.com/phpredis/phpredis/zip/php7
3.安装编译的相关环境以及php等依赖的相关库
yum update && yum upgrade
yum groupinstall "Development tools"
当然下面的代码和上面的有的重复,不用担心,安装过的会略过
yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof libxslt libxslt-devel
二、软件安装以及配置
0.新建用户以及文件夹
#创建群组www(nginx,php),mysql(mysql)
groupadd www
groupadd mysql
#创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/false -g www -M www
useradd -s /sbin/false -g mysql -M mysql #创建web目录
mkdir -R /var/www/html
chown -R www:www /var/www/
1.安装mariadb
yum -y install MariaDB-server MariaDB-client mariadb-devel
安装完成后,改my.cnf,重启
mv /etc/my.cnf /etc/my.cnf.bak
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf service mysql start 或者 /etc/init.d/mysql restart 重启 |要是提示找不到 那就用service mariadb start
2.编译安装php7
当然是先解压文件
cd /usr/local/src/
tar zxvf php-7.1.0.tar.gz
cd php-7.1.0
#需要安装什么就 ./configure --help | grep mysql(这里只是个例子XXX) 看看他的选项是什么
./configure --prefix=/usr/local/php \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-jpeg-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--enable-embedded-mysqli \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip #提示缺啥就安装什么,或者安装libXXX-devel
#比如提示我缺少xslt
#我就试着安装了libXXX libXXX-devel(devel是头文件) # yum install libxslt # yum install libxslt-devel
make && make install #漫长的等待后成功
从编译目录中取出php.ini文件(生产环境和开发环境任选其一),注意是lib下,不信事后可查看phpinfo中的Configuration File (php.ini) Path这个选项,将php.ini移入到此位置
cp php.ini-development /usr/local/php/lib/php.ini 从编译目录中将php-fpm放入到etc/init.d/目录下
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm 到php安装目录将两个需要改名的配置文件改改名字
cd /usr/local/php/etc/ mv php-fpm.conf.default php-fpm.conf cd php-fpm.d/ mv www.conf.default www.conf #修改www.conf的用户为www
user = www
group = www
#启动
service php-fpm start
3.编译安装nginx
进入/usr/local/src/下的目录,解压nginx文件不再详述#添加模块就是用--add-dynamic-module=模块解压的文件夹
./configure --prefix=/usr/local/nginx \
--add-dynamic-module=/usr/local/src/ngx_http_consistent_hash-master \
--add-dynamic-module=/usr/local/src/ngx_http_redis-0.3. \
--with-http_stub_status_module make && make install
简单配置nginx让其启动,详细配置优化我们专门有一篇文章
#user改为www
user www #添加index.php
location / {
root /var/www/html;
index index.php index.html index.htm;
} #支持php location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
} #保存退出
#启动
cd /usr/local/nginx/sbin/
./nginx
#会在/usr/local/nginx/logs/生成一个nginx.pid,以后就可以使用信号量了
ps aux |grep nginx
4.编译安装redis
解压,进入目录不再详述
#直接编译安装就行make && make install #为redis建立工作目录 mkdir /usr/local/redis
#从编译目录将配置文件,客户端,服务器端复制过去
cp redis.conf /usr/local/redis/
cd src/
cp redis-cli redis-server /usr/local/redis #简单配置redis.conf(设置为后台启动)
cd /usr/local/redis
vim redis.conf
daemonize yes
保存退出 cd /usr/local/redis
#启动服务器端
./redis-server redis.conf
#启动客户端,可以进行各种操作了
./redis-cli
让php支持redis(php安装拓展都是千篇一律的,进入加压后的文件夹中执行phpize,然后./configure 指向php-config,结束会告诉你拓展目录是啥复制放到php.ini中)
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/loca/php/bin/php-config vim /usr/local/php/lib/php.ini 在差不多最后的地方添加(memcache的也是一样,后面不再详述)
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/" (当然这个目录是编译redis拓展完成后提示的地址)
[redis]
extension=redis.so
5.编译安装memcached(解压进入目录不再详述)
#因为是yum安装的libevent,不必再--with-libevent指定libevent
./configure --prefix=/usr/local/memcached
make && make install #启动(用户www , 后台启动 -d ),www没有的自己建个
cd /usr/local/memcached/bin
./memcached -u www -d
php支持memcache的拓展(解压进入目录)
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/loca/php/bin/php-config php.ini中添加
[memcache]
extension=memcache.so #重启nginx和php-fpm
service php-fpm restart
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
centos7下搭建nginx+php7.1+mariadb+memcached+redis的更多相关文章
- CentOS7下搭建Nginx+PHP7的安装配置
一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C ...
- CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架 2018.3.11
CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架 阿里云服务器的选择 当然是选择学生优惠啦.这里阿里云还提供了轻量级服务器这个选项,可以预装 LA ...
- CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架
<!doctype html> CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架.mdhtml {overflow-x: initia ...
- 在centos7下搭建nginx环境,并配置负载均衡,最终能达到通过域名直接访问的目的
1.关于nginx:个人理解的nginx它的主要用途就是负载均衡,当然可能还有其他一些功能可能我们不长用到,我们通过nginx可以干什么呢?为什么要引入它呢?原因是当有高并发访问服务器时,服务器可能会 ...
- Linux系统:centos7下搭建Nginx和FastDFS文件管理中间件
本文源码:GitHub·点这里 || GitEE·点这里 一.FastDFS简介 1.基础概念 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件上传 ...
- Linux系统:Centos7下搭建PostgreSQL关系型数据库
本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...
- centos7下编译安装php-7.0.15(PHP-FPM)
centos7下编译安装php-7.0.15(PHP-FPM) 一.下载php7源码包 http://php.net/downloads.php 如:php-7.0.15.tar.gz 二.安装所需依 ...
- windows下搭建nginx+php开发环境
windows下搭建nginx+php开发环境 1.前言 windows下大多我们都是下载使用集成环境,但是本地已经存在一个集成环境,但不适合项目的需求.因此准备再自己搭建一个环境. 2.准备 工具: ...
- 在Centos7下搭建Socks5代理服务器
在Centos7下搭建Socks5代理服务器 http://blog.51cto.com/quliren/2052776 采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器 ...
随机推荐
- 后台进程管理supervisor
一.安装 该工具是python的一个软件包,需要安装python及其python-setuptools 二.安装完后会在python的bin目录下找到对应的命令文件 三.安装supervisor为服务 ...
- [dpdk] 熟悉SDK与初步使用 (四)(L3 Forwarding源码分析)
接续前节:[dpdk] 熟悉SDK与初步使用 (三)(IP Fragmentation源码分析) 前文中的最后一个问题,搁置,并没有找到答案.所以继续阅读其他例子的代码,想必定能在其他位置看到答案. ...
- iOS,一行代码进行RSA、DES 、AES、MD5加密、解密
本文为投稿文章,作者:Flying_Einstein(简书) 加密的Demo,欢迎下载 JAVA端的加密解密,读者可以看我同事的这篇文章:http://www.jianshu.com/p/98569e ...
- WCF Security(转载)
WCF Security 主要包括 "Transfer Security"."Access Control"."Auditing" 几个部分 ...
- 【vue.js权威指南】读书笔记(第二章)
[第2章:数据绑定] 何为数据绑定?答曰:数据绑定就是将数据和视图相关联,当数据发生变化的时候,可以自动的来更新视图. 数据绑定的语法主要分为以下几个部分: 文本插值:文本插值可以说是最基本的形式了. ...
- shell中{}的妙用
shell中${}的妙用 1. 截断功能 ${file#*/}: 拿掉第一条/及其左边的字符串:dir1/dir2/dir3/my.file.txt ${file##*/}: 拿 ...
- python_excel
1. xlrd, xlwt, xlutils的关系 Python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Ex ...
- python gevent 协程
简介 没有切换开销.因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高, 不需要锁机制.因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断 ...
- centos7最小安装后常常需要添加的命令
本人下载的最小镜像文件下载地址:http://pan.baidu.com/s/1kUD2jbT 原文地址:http://blog.csdn.net/nmgrd/article/details/5176 ...
- JSP基本语法小结
jsp表达式:<%=???%> 在jsp页面嵌入java代码<%Java代码%>可以用多个<% %>分割代码段 jsp声明:<%!用这样的方法可以声明java ...