基本环境部署(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. PW6513高压40V的LDO芯片,SOT89封装

    一般说明 PW6513系列是一款高精度,高输入电压,低静态电流,高速,低具有高纹波抑制的线性稳压器.输入电压高达40V,负载电流为在电压=5V和VIN=7V时高达300mA.该设备采用BCD工艺制造. ...

  2. IOC技术在前端项目中的应用

    目录 背景 什么是IOC 如何实现一个IOC 第一步:实现一个容器 第二步:用好装饰器 第三步:使用容器 扩展和展望 最后 背景 前端发展至今已经过去30余年,前端应用领域在不断壮大的过程中,也变得越 ...

  3. win32 sdk 环境下创建状态栏

    今天在学习状态栏,出了好多的问题,这里记录下. 要创建状态栏用:CreateStatusWindow CreateStatusWindow函数创建一个状态窗口,通常用于显示应用程序的状态.窗口通常显示 ...

  4. java.net.NoRouteToHostException: 没有到主机的路由

    今天在配置Jenkins 的云服务器的时候提示:java.net.NoRouteToHostException: 没有到主机的路由,网上查到的没有主机路由问题提到的大多是防火墙问题. 查看防火墙状态: ...

  5. [阿里DIEN] 深度兴趣进化网络源码分析 之 Keras版本

    [阿里DIEN] 深度兴趣进化网络源码分析 之 Keras版本 目录 [阿里DIEN] 深度兴趣进化网络源码分析 之 Keras版本 0x00 摘要 0x01 背景 1.1 代码进化 1.2 Deep ...

  6. Uber三代API 生命周期管理平台实现 Uber

    Uber三代API 生命周期管理平台实现 - InfoQ https://www.infoq.cn/article/H8Ml6L7vJGQz0efpWvyJ Uber 三代 API 生命周期管理平台实 ...

  7. Kubernetes TensorFlow 默认 特定 集群管理器 虚拟化技术

    Our goal is to foster an ecosystem of components and tools that relieve the burden of running applic ...

  8. Java多线程--两种实现方式

    进程概述: 在这之前,有必要了解一下什么是进程? 在一个操作系统中,每个独立的执行的程序都可称为一个进程,也就是"正在运行的程序".如图所示: 线程概述: 如上所述,每个运行的程序 ...

  9. Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

    一,引言 上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azu ...

  10. Vue3.0网页版聊天|Vue3.x+ElementPlus仿微信/QQ界面|vue3聊天实例

    一.项目简介 基于vue3.x+vuex+vue-router+element-plus+v3layer+v3scroll等技术构建的仿微信web桌面端聊天实战项目Vue3-Webchat.基本上实现 ...