基本环境部署(LNMP)

安装 Nginx

# 配置 nginx 官方源
[root@web01 ~]# vi /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
[root@web01 ~]# yum -y install nginx # 创建一个 nginx 执行用户 (也是 php-fpm 执行用户)
[root@web01 ~]# useradd www -u 666 -r -s /sbin/nologin -M # 修改 nginx 启动用户
[root@web01 ~]# vi /etc/nginx/nginx.conf
user www; # 启动 nginx,并将 nginx 加入开机自启
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx # 检查 端口,进程
[root@web01 ~]# netstat -lntup | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10228/nginx: master
[root@web01 ~]# ps -ef | grep nginx
root 10228 1 0 19:31 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 10229 10228 0 19:31 ? 00:00:00 nginx: worker process
root 10252 9943 0 19:31 pts/0 00:00:00 grep --color=auto nginx

安装 PHP7.1

# 在安装之前删除相关软件包,以确保全部重新安装
[root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common #配置第三方源
[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 -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 # 修改 php-fpm 执行用户
[root@web01 ~]# vi /etc/php-fpm.d/www.conf
user = www
group = www # 启动 php-fpm,并将 php-fpm 加入开机自启
[root@web01 ~]# systemctl start php-fpm
[root@web01 ~]# systemctl enable php-fpm # 检查 端口,进程
[root@web01 conf.d]# netstat -lntup | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10475/php-fpm: mast
[root@web01 conf.d]# ps -ef | grep php-fpm
root 10475 1 0 19:42 ? 00:00:00 php-fpm: master process (/etc/php-fpm.conf)
www 10476 10475 0 19:42 ? 00:00:00 php-fpm: pool www
www 10477 10475 0 19:42 ? 00:00:00 php-fpm: pool www
www 10478 10475 0 19:42 ? 00:00:00 php-fpm: pool www
www 10479 10475 0 19:42 ? 00:00:00 php-fpm: pool www
www 10480 10475 0 19:42 ? 00:00:00 php-fpm: pool www
root 10512 9943 0 19:49 pts/0 00:00:00 grep --color=auto php-fpm

安装 Mariadb

# 安装 mariadb-server 软件包
[root@db01 ~]# yum -y install mariadb-server # 开启 mariadb,并将 mariadb 加入开机自启
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb # 创建一个 mariadb 超级管理员用户,设置密码
[root@db01 ~]# mysqladmin -uroot password '123'

安装 NFS

部署 NFS 服务端

# 部署 NFS 服务端,安装 nfs-utils
[root@nfs ~]# yum install -y nfs-utils rpcbind # 编辑 nfs-server 的配置文件(WordPress的共享存储目录为/wp_data,Wecenter的共享存储目录/zh_data)
[root@nfs ~]# vi /etc/exports
/wp_data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/zh_data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666) # 创建配置中的 共享目录 并指定属主和属组
[root@nfs ~]# mkdir /wp_data /zh_data
[root@nfs ~]# chown www.www /wp_data /zh_data # 检查配置文件是否生效
[root@nfs ~]# cat /var/lib/nfs/etab # 创建 nfs-server 服务的匿名用户
[root@nfs ~]# useradd www -u 666 -r -s /sbin/nologin -M # 重启 nfs-server 服务,并将 nfs-server 加入开机自启
[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server

部署 NFS 客户端

# 部署 NFS 客户端,安装 nfs-utils
[root@web01 ~]# yum install -y nfs-utils rpcbind
[root@web02 ~]# yum install -y nfs-utils rpcbind # 查看 NFS服务端 "房源"
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/wp_data 172.16.1.0/24
/zh_data 172.16.1.0/24

部署 WordPress

需求:使用 LNMP 架构搭建 WordPress 软件,部署分布式集群服务器架构:

服务器 WANIP LANIP 环境
WEB01 10.0.0.7 172.16.1.7 nginx + php
WEB02 10.0.0.8 172.16.1.8 nginx + php
DB01 10.0.0.51 172.16.1.51 Msql
NFS 10.0.0.31 172.16.1.31 NFS(需部署客户端)

首台服务器 环境部署

# 创建 nginx 配置文件,配置 fastcgi 代理,连接 `nginx 服务` 与 `fpm-php 服务`
[root@web01 ~]# vi /etc/nginx/conf.d/blog.wqh.com.conf
server {
listen 80;
server_name blog.wqh.com;
root /website/wordpress;
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 ~]# mkdir -p /website/wordpress # 修改站点目录的 属主和属组(为了 nginx服务执行用户 可以访问,php服务执行用户 可以解析)
[root@web01 ~]# chown www.www -R /website/wordpress/ # 检测 nginx 和 php-fpm 是否连接成功
[root@web01 ~]# vi /website/wordpress/index.php
<?php
phpinfo();
?>
# 此文件只做检测使用,检测完需要立刻删除,此文件暴露会非常危险 # 编辑 C:\Windows\System32\drivers\etc\hosts 本地域名解析,一个一个配置,注释掉其他服务器 IP
10.0.0.7 blog.wqh.com
#10.0.0.8 blog.wqh.com

如果成功,访问 http://blog.wqh.com 会显示以下内容:

# 如果出现了以上界面,证明 php-cgi 进程已经可以处理来自 nginx 服务的请求
# 删除站点目录下的 index.php 文件(只是一个测试文件),解压 WordPress 软件包 到站点目录
[root@web01 ~]# rm -f /website/wordpress/index.php
[root@web01 ~]# unzip wordpress-5.0.3-zh_CN.tar.gz -d /website/wordpress/ # 修改站点目录的 属主和属组(为了 nginx服务执行用户 可以访问,php服务执行用户 可以解析)
[root@web01 ~]# chown www.www -R /website/wordpress/

数据库服务器 环境部署

# 在 数据库服务器 上创建 数据库 wordpress,并指定授权
# 授权所有权限 grant all privileges
# 授权所有库所有表 *.*
# 将授权赋予给哪个用户,这个用户只能通过哪个网段过来(%所有) 'all'@'%'
# 授权该用户登录的密码 identified by [root@db01 ~]# mysql -uroot -p123
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all on wordpress.* to wp_user@'%' identified by '123456';
MariaDB [(none)]> exit
Bye

安装 WordPress

此时可以打开浏览器,输入域名 http://zh.wqh.com ,配置数据库信息,并开始安装:

其他服务器 环境部署

在浏览器中配置完数据库后,WordPress 连接数据库的配置文件已经存在(在站点目录下),将nginx 配置文件站点目录 远程传送给其他服务器即可 。

# 使用 scp 命令,将 nginx 配置文件 远程传输
[root@web01 ~]# scp /etc/nginx/conf.d/blog.wqh.com.conf 172.16.1.8:/etc/nginx/conf.d/ # 使用 scp 命令,将 站点目录远程传输,使用 -p 选项保持原有属性(属主和属组)
[root@web01 ~]# scp -rp /website/wordpress 172.16.1.8:/website

NFS服务端/客户端 环境部署

## NFS 服务端(基本环境部署中已经做过)
# 编辑 nfs-server 的配置文件(WordPress的共享存储目录为/wp_data,Wecenter的共享存储目录/zh_data)
[root@nfs ~]# vi /etc/exports
/wp_data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/zh_data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666) # 创建配置中的 共享目录 并指定属主和属组
[root@nfs ~]# mkdir /wp_data
[root@nfs ~]# chown www.www /wp_data # 重启 nfs-server服务
[root@nfs ~]# systemctl restart nfs-server ## NFS 客户端
# 将目录挂载到 NFS服务端,此时访问 /website/wordpress/wp-content/uploads/ 目录时,实际上是 NFS服务端的 /wp_data 目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/wp_data /website/wordpress/wp-content/uploads/ # 将目录挂载到 NFS服务端,此时访问 /website/wordpress/wp-content/uploads/ 目录时,实际上是 NFS服务端的 /wp_data 目录
[root@web02 ~]# mount -t nfs 172.16.1.31:/wp_data /website/wordpress/wp-content/uploads/ # Wordpress 软件用户上传的静态资源会存储在站点目录下的 wp-content/uploads 中
# uploads 目录,在初始安装后是没有的,如果网站用户上传过文件,才会创建
# 如果站点目录下,没有 uploads 目录,可以自己创建,并更改 属主和属组

番外:导入 WordPress 主题

# 主题相关文件的路径(若是分布式架构,需要对此主题目录做 NFS共享存储)
[root@web01 ~]# cd /website/wordpress/wp-content/themes
# 默认存在的主题 twenty*
[root@web01 themes]# ll
total 16
-rw-r--r-- 1 www www 28 Jun 5 2014 index.php
drwxr-xr-x 8 www www 4096 Apr 1 05:00 twentynineteen
drwxr-xr-x 5 www www 4096 Apr 1 05:00 twentyseventeen
drwxr-xr-x 7 www www 4096 Apr 1 05:00 twentytwenty

下载一些主题,解压到此目录即可,分享一波好看的主题

原版Sakura主题 传送门

改良版Sakura主题 传送门

在主题配置页面,加入随机图片的API https://random.52ecy.cn/randbg.php?return=302





部署 Wecenter

需求:使用 LNMP 架构搭建 Wecenter 软件,部署分布式集群服务器架构:

服务器 WANIP LANIP 环境
WEB01 10.0.0.7 172.16.1.7 nginx + php
WEB02 10.0.0.8 172.16.1.8 nginx + php
DB01 10.0.0.51 172.16.1.51 Msql
NFS 10.0.0.31 172.16.1.31 NFS(需部署客户端)

首台服务器 环境部署

# 创建 nginx 配置文件,配置 fastcgi 代理,连接 `nginx 服务` 与 `fpm-php 服务`
[root@web01 ~]# vi /etc/nginx/conf.d/zh.wqh.com.conf
server {
listen 80;
server_name zh.wqh.com;
root /website/zh;
index index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
} # 创建站点目录,解压 Wecenter 软件包 到站点目录
[root@web01 ~]# mkdir -p /website/zh
[root@web01 ~]# unzip WeCenter_3-2-1.zip -d /website/zh # 修改站点目录的 属主和属组(为了 nginx服务执行用户 可以访问,php服务执行用户 可以解析)
[root@web01 ~]# chown www.www /website -R # 设置好物理机的本地域名解析,打开浏览器访问 zh.wqh.com
# 编辑 C:\Windows\System32\drivers\etc\hosts 本地域名解析,一个一个配置,注释掉其他服务器 IP
10.0.0.7 blog.wqh.com zh.wqh.com
#10.0.0.8 blog.wqh.com zh.wqh.com

数据库服务器 环境部署

# 在 数据库服务器 上创建 数据库 wecenter,并指定授权
[root@db01 ~]# mysql -uroot -p123
MariaDB [(none)]> create database wecenter;
MariaDB [(none)]> grant all on wecenter.* to wc_user@'%' identified by '123456';
MariaDB [(none)]> exit
Bye

安装 Wecenter

此时可以打开浏览器,输入域名 http://zh.wqh.com ,配置数据库信息,并开始安装:

其他服务器 环境部署

在浏览器中配置完数据库后,Wecenter 连接数据库的配置文件已经存在(在站点目录下),将nginx 配置文件站点目录 远程传送给其他服务器即可 。

# 使用 scp 命令,将 nginx 配置文件 远程传输
[root@web01 ~]# scp /etc/nginx/conf.d/zh.wqh.com.conf 172.16.1.8:/etc/nginx/conf.d/ # 使用 scp 命令,将 站点目录远程传输,使用 -p 选项保持原有属性(属主和属组)
[root@web01 ~]# scp -rp /website/zh 172.16.1.8:/website

NFS服务端/客户端 环境部署

## NFS 服务端(基本环境部署中已经做过)
# 编辑 nfs-server 的配置文件(WordPress的共享存储目录为/wp_data,Wecenter的共享存储目录/zh_data)
[root@nfs ~]# vi /etc/exports
/wp_data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/zh_data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666) # 创建配置中的 共享目录 并指定属主和属组
[root@nfs ~]# mkdir /zh_data
[root@nfs ~]# chown www.www /zh_data # 重启 nfs-server服务
[root@nfs ~]# systemctl restart nfs-server ## NFS 客户端
# 将目录挂载到 NFS服务端,此时访问 /website/zh/uploads/ 目录时,实际上是 NFS服务端的 /zh_data 目录
[root@web01 ~]# mount -t nfs 172.16.1.31:/zh_data /website/zh/uploads/ # 将目录挂载到 NFS服务端,此时访问 /website/zh/uploads/ 目录时,实际上是 NFS服务端的 /zh_data 目录
[root@web02 ~]# mount -t nfs 172.16.1.31:/zh_data /website/zh/uploads/ # Wecenter 软件用户上传的静态资源会存储在站点目录下的 uploads 中
# uploads 目录,在初始安装后是没有的,如果网站用户上传过文件,才会创建
# 如果站点目录下,没有 uploads 目录,可以自己创建,并更改 属主和属组
# 这些特点 Wecenter 和 WordPress 相同

部署 WordPress 和 Wecenter的更多相关文章

  1. 如何搭建wordpress ,wecenter

    14.什么是LNMP架构 LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可 ...

  2. 部署web01,web02,nfs,db01,backup,搭建wordpress,WeCenter,实现共享,热备,实时备份

    小结 部署web01,web02,nfs,db01,backup,搭建wordpress,WeCenter,实现共享,热备,实时备份 1)在web01和web02上安装nginx和php 2)创建ww ...

  3. Centos7.4下用Docker-Compose部署WordPress(续)-服务器端用Nginx作为反向代理并添加SSL证书(阿里云免费DV证书)

    前言 在我写完Centos7.4下用Docker-Compose部署WordPress这篇文章后,我的个人博客已经正式的开始运作.但考虑到网站访问的安全性以及今后可能会重复利用服务器来部署其他网站的可 ...

  4. Centos7.4下用Docker-Compose部署WordPress

    前言 最近在学习Docker相关知识,通过阅读第一本Docker书后,正想着手实战用一下这个技术,但又不太敢直接在项目环境下动手.考虑足足三秒钟之后决定买个阿里云ECS搭建一个属于自己的基于Docke ...

  5. Docker swarm 实战-部署wordpress

    Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo 6imq8da3vcwvj2n499k ...

  6. CentOS7下搭建基本LNMP环境,部署WordPress

    系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nginx-1.12.2.tar.gz php 7.1.11 ...

  7. Docker Swarm应用--lnmp部署WordPress

    一.简介 目的:使用Docker Swarm 搭建lnmp来部署WordPress 使用Dockerfile构建nginx.php镜像 将构建的镜像上传docker私有仓库 使用volume做work ...

  8. 用lnmp架构部署wordpress网站详细步骤

    用lnmp架构部署wordpress网站 ①.下载和上传网站代码 用winscp或者xftp, 或者xshell下执行rz命令进行上传网站的包文件. ②.解压程序代码,并将程序代码保存到站点目录,并进 ...

  9. windows7搭建xmapp部署wordpress

    前言 为了学习自动化,在网上搜索资料学习了一下在本机安装xmapp,搭建php环境,本机部署wordpress这个开源项目 内容 主要分成以下几步: 准备安装包,快速安装xmapp 根据实际需求,修改 ...

随机推荐

  1. 记一次centos7重启后docker无法启动的问题

    问题描述 在重新了centos7系统后,docker突然就启动不了了,查看报错信息 [root@localhost ~]# systemctl status docker.service ● dock ...

  2. Git 创建新分支检查分支

    创建分支和切换分支,也可以称为检出分支 创建新分支 git branch branchName 切换到新分支 git checkout branchName 上面两个命令也可以合成为一个命令: git ...

  3. python-列表包字典-根据字典的某一个键的值来进行排序

    python-列表包字典-根据字典的某一个键的值来进行排序 列表包字典的数据结构 要实现按照字典中的某一个键所对应的值进行排序 有两种办法 方法一,使用列表的sort方法 由小到大排 列表.sort( ...

  4. 前端面试准备笔记之JavaScript(02)

    01. this的典型应用场景 this在各个场景中取什么值,是在函数执行的时候确认的,不是在定义的时候确认的. 普通函数执行 返回window function fn1() { console.lo ...

  5. MySQL的双主配置

    配置MySQL双主配置,需要先配置MySQL的主从复制,传送门: 0.集群规划 hadoop105 hadoop106 hadoop107 MySQL(master,slave) MySQL(slav ...

  6. c++ 三五法则 自己理解

    简介 三五法则规定了什么时候需要  1 拷贝构造函数   2 拷贝赋值函数  3 析构函数 1. 需要析构函数的类也需要拷贝构造函数和拷贝赋值函数. 通常,若一个类需要析构函数,则代表其合成的析构函数 ...

  7. P5689 多叉堆

    写在前面 OI 生涯中 AC 的首道组合数学应用题. 开题 5min 发现规律,写了半下午代码,调了两天,然而甚至没过样例,心态崩了.几天之后重新写了一份代码才 AC. 虽然思维难度不大,但毕竟是联赛 ...

  8. Urlrewrite

    Urlrewrite  地址重写,用户得到的全部都是经过处理后的URL地址 过滤用户的所有请求,符合规则的便对其进行重定向 rule结点中from默认使用的正则表达式来匹配,若用户访问服务器时的URL ...

  9. 利用Javascript制作网页特效(时间特效)

    在网页中经常可以看到各种各样的动态时间显示,在网页中合理地使用时间可以增加网页的时效感. 显示当前时间 getHours().getMinutes().getSeconds()分别获得当前小时数.当前 ...

  10. Java面试(解答题一)

    1.简述下列问题 List,set,map的区别 解答:List,Set都是继承自Collection接口,Map则不是: List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素 ...