news 2025/12/26 5:15:21

分布式LNMP部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
分布式LNMP部署

文章目录

    • 部署分布式WordPress站点
      • 实验环境
      • 实验拓扑图
      • 任务需求
      • 任务实施
        • 搭建数据库mysql
          • 1、安装数据库
          • 2、修改初始化密码
          • 3、为站点创建数据库
          • 4、为wecenter站点数据库
        • 搭建nfs网络文件系统
          • 服务端
          • 客户端:web01和web02一样的操作
        • 安装Nginx和PHP
          • 1、web01和web02安装Nginx,一样的操作
          • 2、web01和web02安装PHP,一样的操作
            • 1、使用第三方扩展 epel 源安装 php7.1
            • 2、安装扩展源(epel-release-7、webtatic-release)
            • 3、配置第三方源,使用 Remi 仓库
            • 4、安装php7.1版本
            • 5 、替换php-fpm运行的用户和组,启动服务
        • 部署WordPress网页
          • web01和web02是一样的操作
            • 编辑配置文件
        • 部署wecenter网页
          • web01和web02是一样的操作
            • 编辑配置文件
        • 启动Nginx、PHP服务
        • 修改host文件,域名访问
        • 访问WordPress完成网页注册
        • 访问wecenter完成网页注册
        • 测试web02服务能否访问

部署分布式WordPress站点

实验环境

主机名主机IP角色身份
web0110.0.0.7web服务器
web0210.0.0.8web服务器
nfs10.0.0.31实现网络文件共享
db0110.0.0.51数据内容存放

实验拓扑图

任务需求

1)web01和web02主机提供NGINXweb功能
2)部署站点WordPress、Wecenter 两个网站
3)数据要分离,静态资源放在nfs上,数据内容放在db01上

任务实施

搭建数据库mysql
1、安装数据库
#将上传的数据库rpm包进行安装yum-y localinstall mysql57/*[root@db01~]# systemctl start mysqld
2、修改初始化密码
[root@db01 ~]# mysqladmin -uroot -p$(awk '/temporary password/{print}' /var/log/mysqld.log ) passwd 'Jy123.com'
3、为站点创建数据库
[root@db01~]# mysql -uroot -pJy123.commysql>create database wordpress;QueryOK,1rowaffected(0.00sec)mysql>create database wecenter;创建WordPress的用户和授权 mysql>CREATEUSER'wpadm'@'%'IDENTIFIEDBY'Jy123.com';QueryOK,0rowsaffected(0.00sec)mysql>GRANTALLPRIVILEGESONwordpress.*TO'wpadm'@'%';QueryOK,0rowsaffected(0.00sec)创建wecenter的用户和授权 mysql>CREATEUSER'weadm'@'%'IDENTIFIEDBY'Jy123.com';QueryOK,0rowsaffected(0.00sec)mysql>GRANTALLPRIVILEGESONwecenter.*TO'weadm'@'%';QueryOK,0rowsaffected(0.00sec)mysql>FLUSHPRIVILEGES;QueryOK,0rowsaffected(0.00sec)完成两个数据库用户的创建和授权#注释:grant 固定字段 授权 all 定义权限,表示所有的权限 on 固定字段 库名.表名*通配所有 to 固定字段 username@客户端%通配所有 identified by ’密码‘ 固定字段,配置前面username的密码
4、为wecenter站点数据库
[root@db01~]# mysql -uroot -pJy123.commysql>create database wecenter;QueryOK,1rowaffected(0.00sec)mysql>grant all on wecenter.*to weadm@'%'identified by'Jy123.com';QueryOK,0rows affected,1warning(0.00sec)#注释:grant 固定字段 授权 all 定义权限,表示所有的权限 on 固定字段 库名.表名*通配所有 to 固定字段 username@客户端%通配所有 identified by ’密码‘ 固定字段,配置前面username的密码

5、重启数据库

[root@db01 ~]# systemctl restart mysqld [root@db01 ~]# systemctl enable mysqld [root@db01 ~]# systemctl status mysqld
搭建nfs网络文件系统
服务端
#语法:共享目录的路径 客户端地址(挂载属性) 共享目录的路径 就是需要提供给客户使用的目录 客户端地址IP域名*通配所有 挂载属性 ro rw all_squash 指定客户端只有访问到nfs服务端,身份都是nfs的程序用户 anonuid 指定程序用户的uid anongid 指定程序用户的gid1、编辑配置文件[root@nfs~]# vim /etc/exports #默认是空的/data/web*(rw,all_squash,anonuid=666,anongid=666)2、创建对应的用户、组以及目录,并修改目录归属[root@nfs~]# groupadd -g666 www[root@nfs~]# useradd -g666 -u666 -M -s /sbin/nologin www[root@nfs~]# mkdir -p /data/web[root@nfs~]# chown -R www.www /data/web/[root@nfs~]# systemctl start nfs rpcbind[root@nfs~]# systemctl enable nfs rpcbindCreated symlink from/etc/systemd/system/multi-user.target.wants/nfs-server.service to/usr/lib/systemd/system/nfs-server.service.3、检查是否搭建成功[root@nfs~]# showmount -eExportlistfornfs:/data/web*
客户端:web01和web02一样的操作
#1、测试是否可以访问[root@web01~]# showmount -e 10.0.0.31 【服务端的IP】Exportlistfor10.0.0.31:/data/web*#2、将nfs挂载到本地临时挂载[root@web01~]# mkdir /web[root@web01~]# mount 10.0.0.31:/data/web /web永久挂载#web01和web02的操作echo"10.0.0.31:/data/web /web nfs defaults 0 0">>/etc/fstab 注释: 如果web中有数据就执行下面的操作1、mv/web/*/opt 挂载完毕之后2、mv/opt*/web
安装Nginx和PHP
1、web01和web02安装Nginx,一样的操作
yum安装 nginx1.14php7.1mysql5.71、使用官方yum源进行安装Nginx[root@web01~]# cat /etc/yum.repos.d/nginx.repo[nginx]name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enabled=1[root@web01~]# yum -y install nginx2、创建程序用户[root@web01~]# groupadd www -g 666[root@web01~]# useradd www -u 666 -g 666 -s /sbin/nologin -M3、修改配置文件[root@web01 nginx]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf[root@web01 nginx]# cat /etc/nginx/nginx.conf |head -10user www;worker_processes auto;error_log/var/log/nginx/error.log notice;pid/var/run/nginx.pid;events{worker_connections1024;
2、web01和web02安装PHP,一样的操作
1、使用第三方扩展 epel 源安装 php7.1
1、使用第三方扩展 epel 源安装 php7.1#1.移除旧版php[root@web01 nginx]# yum remove php-mysql-5.4 php php-fpm php-common -y
2、安装扩展源(epel-release-7、webtatic-release)
# 下载epel-release-7-14.noarch.rpm(归档版本,稳定可用)wgethttps://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm# 安装该rpm包rpm-Uvh epel-release-7-14.noarch.rpm 注意:webtatic 仓库已经停止维护,对 CentOS7的支持也已终止,建议尽量避免使用rpm-Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3、配置第三方源,使用 Remi 仓库
安装Remi-release-7rpm-Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm 安装yum-utils(提供yum-config-manager工具) yuminstall-y yum-utils 启用Remi的PHP7.4仓库(根据需要替换为5.6/7.2/8.0等) yum-config-manager --enable remi-php71 清理缓存[root@web01 nginx]# yum clean all[root@web01 nginx]# yum makecache
4、安装php7.1版本
[root@web01 nginx]# 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
5 、替换php-fpm运行的用户和组,启动服务
[root@web01 php-fpm.d]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf[root@web01 php-fpm.d]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf[root@web01 php-fpm.d]# systemctl start php-fpm[root@web01 php-fpm.d]# systemctl enable php-fpmCreated symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
部署WordPress网页
web01和web02是一样的操作
编辑配置文件
[root@web01 conf.d]# cat wordpress.confserver{server_name wordpress.jy.com;root /web/wordpress;listen80;index index.php index.html;#设置大小可以上传图片client_max_body_size 90M;location ~\.php${# 定义php页面的路径,如果跟默认的root一样,可以不写# 定义php-fpm的访问方式fastcgi_pass127.0.0.1:9000;# 定义php的索引文件名,跟站点默认index要匹配fastcgi_index index.php;# 定义fastcgi的解析路径fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;include fastcgi_params;}}
部署wecenter网页
web01和web02是一样的操作
编辑配置文件
[root@web01 ~]# cat /etc/nginx/conf.d/wecenter.confserver{server_name wecenter.jy.com;root /web/wecenter;listen80;index index.php index.html;#设置大小可以上传图片client_max_body_size 90M;location ~\.php${# 定义php页面的路径,如果跟默认的root一样,可以不写# 定义php-fpm的访问方式fastcgi_pass127.0.0.1:9000;# 定义php的索引文件名,跟站点默认index要匹配fastcgi_index index.php;# 定义fastcgi的解析路径fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;include fastcgi_params;}
启动Nginx、PHP服务
systemctl start nginx php-fpm systemctlenablenginx php-fpm
修改host文件,域名访问
物理机修改 路径:C:\Windows\System32\drivers\etc 10.0.0.7 wecenter.jy.com wordpress.jy.com 10.0.0.8 wecenter.jy.com wordpress.jy.com
访问WordPress完成网页注册

访问wecenter完成网页注册

这里使用web02的IP进行访问,因为我们同时在web01和web02部署了两个域名一样的网站,目前没有上负载均衡,所以使用域名访问的话只能看到web01的,或者可以在完全注册完成之后,把web01的Nginx PHP暂停访问测试,web02是否可以正常访问

测试web02服务能否访问
1、暂停web01的Nginx和PHP[root@web01 ~]# systemctl stop nginx php-fpm[root@web01 ~]#

使用浏览器访问域名

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/17 20:38:53

【dz-948】基于单片机为核心控制器件的国旗升降控制系统

基于单片机为核心控制器件的国旗升降控制系统 摘要 随着对国旗升降仪式规范性要求的提高,实现国旗升降的自动化、精准化控制成为重要需求。在学校、机关、广场等场所的国旗升降过程中,人工操作易出现升降速度不均、国歌同步性差、高度控制不准等问题&…

作者头像 李华
网站建设 2025/12/17 20:37:42

解决Ubuntu中 5060 与当前安装的 PyTorch 版本不兼容的问题

RTX 5060 是比较新的显卡,可能需要较新的 PyTorch 版本(2.2.0)和 CUDA 12.1 才能完全支持 具体操作步骤: 方法 A:使用系统终端 打开终端: Windows: WinR → 输入 cmd 或 powershell macOS: Command空格 →…

作者头像 李华
网站建设 2025/12/17 20:33:39

力控机器人推荐,从原理到选型,解锁柔性生产新可能

在智能制造的浪潮下,传统工业机器人“刚性操作”的局限性日益凸显,无法满足精密装配、曲面打磨、医疗康复等领域对“力度把控”的精细化需求。而力控机器人凭借其精准的力觉感知与自适应柔顺控制能力,成为解决这类高附加值场景作业难题的核心…

作者头像 李华
网站建设 2025/12/17 20:33:31

DocMost新手教程:5分钟上手AI文档管理

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个交互式新手教程应用,功能包括:1. 分步引导用户使用DocMost核心功能;2. 提供实时反馈和错误提示;3. 包含示例文档和模板&…

作者头像 李华
网站建设 2025/12/24 6:57:50

学生评价标准与示例,AI生成评价新方式

摘要Top Pick:爱查分 核心价值:3分钟完成全班个性化评语,让每个学生都被真正看见 关键亮点: • AI智能生成,结合真实成绩数据自动分析学生特点 • 40多个学生的评语3分钟完成,告别深夜套模板 • 支持个性化…

作者头像 李华
网站建设 2025/12/24 1:12:04

电商系统中的MySQL NULL处理实战:NVL的5个典型场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个电商数据库查询示例,包含订单表和用户表。展示5种使用NVL/IFNULL/COALESCE处理NULL值的场景:1) 未填写收货地址时显示默认地址 2) 未评分订单显示默…

作者头像 李华