linux系统lnmp数据集群共享

需求:在web01和web02上面部署博客和知乎,然后两台机器用

同一个数据库,并且实现数据共享

准备坏境

主机名 wlan lan 安装服务
web01 10.0.0.7 172.16.1.7 nfs-utils,nginx,php-fpm
web02 10.0.0.8 172.16.1.8 nfs-utils,nginx.php-fpm
nfs 10.0.0.31 172.16.1.31 nfs-utils
db01 10.0.0.51 172.16.1.51 mariadb-server

操作步骤

没有nginx和php-fpm的压缩包的情况下

### 如果没有nginx和php-fpm的压缩包
## 打开浏览器输入nginx.org,进入nginx官网
# 点击页面右侧的download,然后查看稳定版本,点击页面最下面的 stable and mainline 
# 然后找到RHEL/CentOS根据官方文件格式配置yum源
[root@web01 ~]# cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 开启yum缓存,方便打包
[root@web01 ~]# cat /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1  # 这里改成1,默认是0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

#  配置完成后下载nginx服务
[root@web01 ~]# yum install -y nginx
### php-fpm
# 删除系统自带的PHP版本
[root@web01 conf.d]# yum remove php-mysql-5.4 php php-fpm php-common
# 更换PHP的源
[root@web01 conf.d]# cat /etc/yum.repos.d/php.repo 
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
# 下载PHP和依赖包
[root@web01 conf.d]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
# 下载完成后找到缓存目录里面的所有以.rpm结尾的包打包
创建一个存放包的目录,把包复制过去
mkdir /root/nginx_php
然后用find xargs 和cp组合拷贝到创建的目录中
[root@web01 conf.d]# find /var/cache/yum -type f -name '*.rpm'|xargs cp -t /root/nginx_php

有nginx和php-fpm压缩包的情况下

web01

## 下载nfs-utils
[root@web01 zh]# yum install -y nfs-utils
## 把压缩包上传到虚拟机
[root@web01 ~]# rz -E
## 解压并进入目录内安装
[root@web01 ~]# tar xf php_nginx.tgz
[root@web01 ~]# cd root/nginx_php
[root@web01 nginx_php]# rpm -Uvh *
 ## 创建用户和用户组
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
## 统一用户
[root@web01 ~]# vim /etc/nginx/nginx.conf 


user  www;
worker_processes  1;
[root@web01 ~]# grep -Ev  '^$|^#|^;' /etc/php-fpm.d/www.conf 
[www]
user = www
group = www
listen = 127.0.0.1:9000
## 编辑nginx配置文件
[root@web01 ~]# vim /etc/nginx/conf.d/blog.wzh.com.conf 

server {
        listen 80;
        server_name blog.wzh.com;
        root /code/wordpress;
        index index.php index.html;

        location ~ .php$ {
            root /code/wordpress;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;

    }
}
[root@web01 ~]# vim /etc/nginx/conf.d/zh.wzh.com.conf 

server {
        listen 80;
        server_name zh.test.com;
        root /code/zh;
        index index.php index.html;

        location ~ .php$ {
            root /code/zh;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
    }
}
## 检查语法
[root@web01 ~]# nginx-t

## 创建站点目录
[root@web01 ~]# mkdir -p /code/wordpress
[root@web01 ~]# mkdir -p /code/zh
## 进到站点目录上传软件包并解压授权
[root@web01 ~]#  cd /code/wordpress/
[root@web01 wordpress]# rz
[root@web01 wordpress]# tar xf wordpress-5.0.3-zh_CN.tar.gz
[root@web01 wordpress]#  mv wordpress/* ./
[root@web01 wordpress]# cd ../zh
[root@web01 zh]# rz
[root@web01 zh]#  mv WeCenter_3-2-1/* ./
[root@web01 zh]#  chown -R  www.www /code
## 启动nginx和php-fpm并加入开机自启
[root@web01 zh]# systemctl start nginx php-fpm
[root@web01 zh]# systemctl enable nginx php-fpm
## 做域名解析
在hosts文件里解析10.0.0.7 blog.wzh.com zh.test.com

web02

## 下载nfs-utils
[root@web02 ~]# yum install -y nfs-utils
## 上传nginx和php-fpm压缩包
[root@web02 ~]# rz -E
## 解压并进入目录内安装
[root@web02 ~]# tar xf php_nginx.tgz
[root@web02 ~]# cd root/nginx_php
[root@web02 nginx_php]# rpm -Uvh *
 ## 创建用户和用户组
[root@web02 ~]# groupadd www -g 666
[root@web02 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
## 统一用户
[root@web02 ~]# vim /etc/nginx/nginx.conf 


user  www;
worker_processes  1;
[root@web02 ~]# grep -Ev  '^$|^#|^;' /etc/php-fpm.d/www.conf 
[www]
user = www
group = www
listen = 127.0.0.1:9000
## 创建站点目录
[root@web02 ~]# mkdir /code
## 把web01的配置文件scp传给web02
[root@web01 code]# scp /etc/nginx/conf.d/blog.wzh.com.conf 10.0.0.8:/etc/nginx/conf.d/
[root@web01 code]# scp /etc/nginx/conf.d/zh.wzh.com.conf 10.0.0.8:/etc/nginx/conf.d/

## 把web01的博客和知乎打包传给web02
[root@web01 code]# tar zcf wordpress.tgz wordpress
[root@web01 code]# scp wordpress.tgz 10.0.0.8:/code/
[root@web01 code]# tar zcf zh.tgz zh
[root@web01 code]# scp zh.tgz 10.0.0.8:/code/
## 解压
[root@web02 code]# tar xf zh.tgz
[root@web02 code]# tar xf wordpress.tgz
## 授权
[root@web02 code]#  chown -R  www.www /code
## 启动nginx和php-fpm并加入开机自启
[root@web02 code]# systemctl start nginx php-fpm
[root@web02 code]# systemctl enable nginx php-fpm
## 做域名解析
在hosts文件里解析10.0.0.8 blog.wzh.com zh.test.com

db01

# 下载mariadb-server
[root@db01 ~]# yum install -y mariadb-server
# 启动并加入开机自启
[root@db01 ~]# systemctl start mariadb.service
[root@db01 ~]# systemctl enable mariadb.service
# 给root用户添加密码
[root@db01 ~]# mysqladmin -uroot password '123'
# 登录
[root@db01 ~]# mysql -uroot -p123
# 创建库
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create database zh ;
Query OK, 1 row affected (0.00 sec)
# 创建用户和密码
MariaDB [(none)]> grant all on *.* to php_user@'%' identified by '111'
    -> ;
Query OK, 0 rows affected (0.00 sec)


nfs

## 下载nfs-utils
[root@nfs ~]# yum install -y nfs-utils
# 编辑配置
[root@nfs ~]# vim /etc/exports

/wp_data 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)
/zh_data 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)
# 创建用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M 
# 创建挂载目录
[root@nfs ~]# mkdir  /zh_data
[root@nfs ~]# mkdir  /wp_data
# 目录授权
[root@nfs ~]# chown www.www /zh_data /wp_data
# 启动并加入开机自启
[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server

web01和web02连接nfs

### 把nfs的共享目录分别挂载在博客和知乎的目录下
[root@web01 ~]# mount -t nfs 172.16.1.31:/wp_data /code/wordpress/wp-content/uploads/
[root@web02 ~]# mount -t nfs 172.16.1.31:/wp_data /code/wordpress/wp-content/uploads/
[root@web01 ~]# mount -t nfs 172.16.1.31:/zh_data /code/zh/uploads/
[root@web02 ~]# mount -t nfs 172.16.1.31:/zh_data /code/zh/uploads/
## 注意的地方:如果之前没有上传过图片没有uploads目录,需要手动创建,如果有这个目录要先把目录里面的东西scp拷贝到nfs的共享目录里面

总结

web01和web02安装的wordPress和Wecenter服务用的是php代码

nginx没有办法直接连接数据库,nginx也不能解读php代码,需要通过fastcgi解析php代码,所以在nginx的配置文件里面调用fastcgi的参数,而wordPress和Wecenter使用同一个数据库,所以需要在数据库里面创建两个存放数据的库,然后再创建出一个有权限管理这些库的用户,root用户也可以


原文地址:https://www.cnblogs.com/zabcd/p/13366856.html