zoukankan      html  css  js  c++  java
  • 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用户也可以


  • 相关阅读:
    UE4蓝图第一天
    UE4材质常用快捷键
    第六天
    第五天
    第四天
    第三天
    第二天
    HDU 1495 非常可乐 (bfs,数论)
    HDU 变形课 (dfs)
    HDU 胜利大逃亡 (bfs)
  • 原文地址:https://www.cnblogs.com/zabcd/p/13366856.html
Copyright © 2011-2022 走看看