ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

lnmp项目搭建 wordpress wecenter

2021-04-30 10:06:15  阅读:193  来源: 互联网

标签:www conf wecenter lnmp nginx wordpress web01 nfs root


文章目录

LNMP

1、拆分机器

机器的主机名外网IP内网IP
db01192.168.15.51(不需要)172.16.1.51
web01192.168.15.7172.16.1.7
web02192.168.15.8172.16.1.8
web03192.168.15.9172.16.1.9
nfs192.168.15.31172.16.1.31
backup192.168.15.41172.16.1.41

2、搭建backup服务器

 # 关闭防火墙、selinux
[root@backup ~]# systemctl disable --now firewalld
[root@backup ~]# setenforce 0
setenforce: SELinux is disabled
# 安装rsync
[root@backup ~]# yum install -y rsync
# 同一用户
[root@backup ~]# useradd -u888 www
[root@backup ~]# id www
uid=1000(www) gid=1000(www) groups=1000(www)

# 编写配置文件
[root@backup ~]# vi /etc/rsyncd.conf 
## 前端代码仓库、数据库备份、上传文件的备份
uid=www
gid=www
port=873
fake super=yes
use chroot=no
max connection=200
timeuot=600
ignore errors
read only=false
list=false
auth users=www
secrets file=/etc/rsync.passwd
log file=/var/log/rsyncd/log
###################################
[web]
comment="前端代码仓库"
path=/backup/web
[database]
comment="数据库备份"
path=/backup/database
[download]
comment="上传文件备份"
path=/backup/download

# 创建仓库
[root@backup ~]# mkdir /backup
[root@backup ~]# mkdir /backup/web
[root@backup ~]# mkdir /backup/database
[root@backup ~]# mkdir /backup/download
[root@backup ~]# tree /backup/
/backup/
├── database
├── download
└── web

# 授权
[root@backup ~]# chown www.www -R /backup/

# 创建密码文件
[root@backup ~]# echo "yangge:520" > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd

# 启动
[root@backup ~]# systemctl enable --now rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.

3、搭建NFS服务器

# 软件 nfs-utils rpcbind

# 安装软件
[root@nfs ~]# yum install nfs-utils rpcbind -y

# 创建用户
[root@nfs ~]# useradd www -u888
[root@nfs ~]# id www
uid=888(www) gid=888(www) groups=888(www)

# 创建前端代码仓库、数据库备份、上传文件的备份
[root@backup ~]# mkdir /nfs
[root@backup ~]# mkdir /nfs/web
[root@backup ~]# mkdir /nfs/database
[root@backup ~]# mkdir /nfs/download
[root@nfs ~]# tree /nfs/
/nfs/
├── database
├── download
└── web

# 授权
[root@nfs ~]# chown www.www -R /nfs/


# 设置挂载点
[root@nfs ~]# vim /etc/exports
/nfs/web      172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
/nfs/database 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
/nfs/download 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)

# 启动
[root@nfs ~]# systemctl enable --now nfs-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

# 检测
[root@nfs ~]# showmount -e
Export list for nfs:
/nfs/download 172.16.1.0/24
/nfs/database 172.16.1.0/24
/nfs/web      172.16.1.0/24

[root@nfs ~]# cat /var/lib/nfs/etab 
/nfs/download	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=888,anongid=888,sec=sys,rw,secure,root_squash,all_squash)
/nfs/database	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=888,anongid=888,sec=sys,rw,secure,root_squash,all_squash)
/nfs/web	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=888,anongid=888,sec=sys,rw,secure,root_squash,all_squash)

4、搭建数据库

# 软件:mariadb

# 安装
[root@db01 ~]# yum install mariadb* -y

# 启动
[root@db01 ~]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

# 创建密码
[root@db01 ~]# mysqladmin -uroot password '123'
[root@db01 ~]# mysql -uroot -p123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 
#查看数据库给谁用
MariaDB [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> select host,user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| db01      |      |
| db01      | root |
| localhost |      |
| localhost | root |
+-----------+------+
6 rows in set (0.00 sec)

# 创建用户给予web以及其它网站使用
MariaDB [mysql]> grant all privileges on *.* to www@'%' identified by 'yangge';
Query OK, 0 rows affected (0.01 sec)

#生效
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#查看
MariaDB [mysql]>  select host,user from user;
+-----------+------+
| host      | user |
+-----------+------+
| %         | www  |
| 127.0.0.1 | root |
| ::1       | root |
| db01      |      |
| db01      | root |
| localhost |      |
| localhost | root |
+-----------+------+
7 rows in set (0.00 sec)

# 数据备份

5、搭建web服务器(三台一起执行)

# 安装官方源
[root@web01 ~]# > /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

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo 
[root@web01 ~]# yum clean all

# 安装nginx
[root@web01 ~]# yum install nginx 

# 启动
[root@web01 ~]# systemctl enable --now nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

6、安装PHP

# 安装PHP
[root@web01 ~]# vim /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0

[root@web01 ~]# yum clean all
[root@web01 ~]# yum makecache
[root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common
[root@web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb php71w-mcrypt

#另外一种安装方式
[root@web01 opt]# rz -E
-rw-r--r-- 1 root root 19889622 Apr 28 21:56 php.tar(2).gz
[root@web01 opt]# tar xf php.tar\(2\).gz
[root@web01 opt]# yum localinstall -y *.rpm
# 修改配置文件
[root@web01 ~]# vim /etc/php-fpm.d/www.conf 
user = www
group = www
#统一用户
[root@web02 ~]#  groupadd www -g 888
[root@web02 ~]# useradd www -u 888 -g 888 -s /sbin/nologin -M

# 启动php
[root@web01 ~]# systemctl enable --now php-fpm.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.


#重启配置文件
[root@web01 ~]# systemctl daemon-reload 

7、将web02和web03加入集群

[root@web02 ~]# mkdir /www
[root@web02 ~]# chown -R www.www /www/
[root@web02 ~]# mount  -t nfs 172.16.1.31:/nfs/web /www
[root@web02 ~]# mount -t nfs 172.16.1.31:/nfs/conf /etc/nginx/conf.d/
[root@web02 ~]# systemctl restart nginx

[root@web03 ~]# mkdir /www
[root@web03 ~]# chown -R www.www /www/
[root@web03 ~]# mount  -t nfs 172.16.1.31:/nfs/web /www
[root@web03 ~]# mount -t nfs 172.16.1.31:/nfs/conf /etc/nginx/conf.d/
[root@web03 ~]# systemctl restart nginx

8、搭建wordpress

# 共享代码、共享数据、共享nginx配置

注:web01机器操作

[root@web01 ~]# groupadd www -g888
[root@web01 ~]# useradd www -u 888 -g 888 -s /sbin/nologin -M
[root@web01 ~]# mkdir /www
[root@web01 ~]# cd /www/
[root@web01 www]# rz -E
[root@web01 www]# ll
-rw-r--r-- 1 root root 11098483 Apr 29 11:27 wordpress.tar.gz
[root@web01 www]# tar -xf wordpress.tar.gz 
drwxr-xr-x 5 1006 1006     4096 Jan 11  2019 wordpress
-rw-r--r-- 1 root root 11098483 Apr 29 11:27 wordpress.tar.gz
[root@web01 www]# chown -R www.www /www/

[root@web01 www]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# ll
-rw-r--r-- 1 root root 1072 Apr 21 00:07 default.conf
[root@web01 conf.d]# rm -rf default.conf 



## 在nfs服务器上创建/nfs/conf目录
[root@nfs web]# mkdir /nfs/conf

## 授权/nfs/conf
[root@nfs web]# chown www.www /nfs/conf

## 加入nfs配置文件
[root@nfs web]# vim /etc/exports
/nfs/web      172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
/nfs/database 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
/nfs/download 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)
/nfs/conf     172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)

#查看
[root@nfs web]# showmount -e
Export list for nfs:
/nfs/conf     172.16.1.0/24
/nfs/download 172.16.1.0/24
/nfs/database 172.16.1.0/24
/nfs/web      172.16.1.0/24

## 重启nfs
[root@nfs web]# systemctl restart nfs-server rpcbind


注:在web01机器执行
## 挂载到web服务器
[root@web01 conf.d]# mount -t nfs 172.16.1.31:/nfs/conf /etc/nginx/conf.d/

## 增加wordpress配置
[root@web01 conf.d]# vim wordpress.conf 
server {
	listen 80;
	server_name linux.wps.cluster.local.com;
	root /www/wordpress;
	location / {
		index index.php;
	}
	location ~* \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
}

# 重启
[root@web01 conf.d]# systemctl restart nginx

# 创建wordpress数据库
[root@db01 ~]# mysql -uroot -p123
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

[root@db01 ~]# systemctl restart mariadb



访问  可以配域名访问   加入hosts文件
172.16.1.51  linux.wps.cluster.local.com

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8-1上传主题

在这里插入图片描述
在这里插入图片描述

8-2报错413修改web01配置文件

[root@web01 opt]# vim /etc/nginx/conf.d/wordpress.conf 
server {
        listen 80;
        server_name linux.wps.cluster.local.com;
        root /www/wordpress;
        
        client_max_body_size 10m;  #
        
        location / {
                index index.php;
        }
        location ~* \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

[root@web01 opt]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 opt]# systemctl restart nginx


# web02和web03重启就可以了
[root@web02~]# systemctl restart nginx

在这里插入图片描述
在这里插入图片描述

9、搭建WeCenter

[root@web01 ~]# rz -E
-rw-r--r--  1 root root 25744989 Apr 28 17:35 zhihu.zip
[root@web01 www]# unzip zhihu.zip 
[root@web01 www]# mv zhihu /www/
[root@web01 www]# cd /www
[root@web01 www]# chown www.www -R zhihu/
[root@web01 www]# vim /etc/nginx/conf.d/wecenter.conf 
server {
        listen 80;
        server_name linux.wecenter.cluster.local.com;
        root /www/zhihu;
        
        location / {
                index index.php;
        }
        location ~* \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

# 三台都重启
[root@web01 conf.d]# systemctl restart nginx

#解析域名
192.168.15.7 linux.wecenter.cluster.local.com

# 创建wordpress数据库
[root@db01 ~]# mysql -uroot -p123

MariaDB [(none)]> create database wecenter;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wecenter           |
| wordpress          |
+--------------------+
6 rows in set (0.00 sec)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、数据库备份

[root@db01 databases]# groupadd www -g888
[root@db01 databases]# useradd www -u 888 -g 888 -s /sbin/nologin -M
[root@db01 databases]# chown www.www /databases/
[root@db01 databases]# mount -t nfs 172.16.1.31:/nfs/database /databases/
[root@db01 ~]# chmod +x mysql_dump.sh 
[root@db01 ~]# ./mysql_dump.sh 
# 编写备份脚本
[root@db01 ~]# cat mysql_dump.sh 
#!/bin/bash
DATE=`date +%F`
BACKUP="/databases"
cd $BACKUP
mysqldump -uroot -p123 --all-databases --single-transaction > mysql-all-${DATE}.sql
tar -czf mysql-all-${DATE}.tar.gz mysql-all-${DATE}.sql
rm -rf mysql-all-${DATE}.sql

[root@db01 ~]# ll /databases/
total 396
-rw-r--r-- 1 www www 398455 Apr 29 22:38 mysql-all-2021-04-29.tar.gz
-rw-r--r-- 1 www www    228 Apr 29 22:36 mysql_dump.sh

# 脚本加入定时任务
[root@db01 ~]# crontab -e
01 00 * * *  /databases/mysql_dump.sh

11、后台加密码

[root@web01 www]# htpasswd -c /etc/nginx/conf.d/auth_basic linux
[root@web01 conf.d]# wordpress.conf
server {
	listen 80;
	server_name linux.wps.cluster.local.com;
	root /www/wordpress;
	client_max_body_size 10m;
	location / {
		index index.php;
	}
	location ~* \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
	location =/wp-admin {
		auth_basic "please input password!";
		auth_basic_user_file /etc/nginx/conf.d/auth_basic;
		index index.php;
	}
}

在这里插入图片描述

12、web网站的实时备份

# sersync + innotiy + rsync
执行nfs   

[root@nfs opt]# rz -E
-rw-r--r-- 1 root root 727290 Apr 22 16:03 sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs opt]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
drwxr-xr-x 2 root root     41 Oct 26  2011 GNU-Linux-x86
-rw-r--r-- 1 root root 727290 Apr 22 16:03 sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs opt]# cd GNU-Linux-x86/
[root@nfs opt]# mv GNU-Linux-x86 /usr/local/
[root@nfs opt]# cd /usr/local/GNU-Linux-x86
[root@nfs GNU-Linux-x86]# ll
total 1772
-rwxr-xr-x 1 root root    2214 Oct 26  2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 Oct 26  2011 sersync2

[root@nfs GNU-Linux-x86]# vim confxml.xml 
    <inotify>
        <delete start="true"/>
        <createFolder start="true"/>
        <createFile start="true"/>
        <closeWrite start="true"/>
        <moveFrom start="true"/>
        <moveTo start="true"/>
        <attrib start="true"/>
        <modify start="true"/>
    </inotify>

    <sersync>
        <localpath watch="/nfs/web">
            <remote ip="172.16.1.41" name="web"/>
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-az"/>
            <auth start="true" users="www" passwordfile="/etc/rsync.passwd"/
            
   [root@nfs GNU-Linux-x86]# echo 123> /etc/rsync.passwd
   [root@nfs GNU-Linux-x86]# chmod 600 /etc/rsync.passwd 
   [root@nfs GNU-Linux-x86]# ./sersync2 -dro confxml.xml 
   
   
   [root@nfs GNU-Linux-x86]# cp confxml.xml confxml-database.xml 
[root@nfs GNU-Linux-x86]# vim confxml-database.xml 
   
    <inotify>
        <delete start="true"/>
        <createFolder start="true"/>
        <createFile start="true"/>
        <closeWrite start="true"/>
        <moveFrom start="true"/>
        <moveTo start="true"/>
        <attrib start="true"/>
        <modify start="true"/>
    </inotify>

    <sersync>
        <localpath watch="/nfs/database">
            <remote ip="172.16.1.41" name="database"/>
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-az"/>
            <auth start="true" users="www" passwordfile="/etc/rsync.passwd"/
            
            [root@nfs GNU-Linux-x86]# ./sersync2 -dro confxml-database.xml
            
            
            
            
   #验证         
  [root@backup web]# cd /backup/database/
[root@backup database]# ll
total 396
-rw-r--r-- 1 www www 398455 Apr 29 22:38 mysql-all-2021-04-29.tar.gz
-rw-r--r-- 1 www www    228 Apr 29 22:36 mysql_dump.sh       

标签:www,conf,wecenter,lnmp,nginx,wordpress,web01,nfs,root
来源: https://blog.csdn.net/yangenguang/article/details/116293398

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有