《实战宝典:基于Linux+NFS/DNS+LNMP的企业级博客从零搭建全流程》

117 阅读5分钟

项目实战-博客搭建

1. 运行环境:

主机主机名系统服务
192.168.11.130Server-WebLinuxWeb
192.168.11.131Server-NFS-DNSLinuxNFS/DNS

2. 基础配置:

  • 配置主机名,静态IP地址

  • 开启防火墙并配置

  • 部分开启SElinux并配置

  • 服务器之间使用同ntp.aliyun.com进行时间同步

  • 服务器之间实现SSH免密登录

3. 业务需求

  • Server-NFS-DNS主机
    • 配置NFS服务器
      • 将博客网站资源文件共享给Server-web主机
    • Server-NFS-DNS主机配置DNS服务
  • Server-Web主机
    • 配置web服务
    • 通过域名www.openlab.com可以访问到自建的博客网站

4. 准备工作

4.1 配置静态IP

# 在192.168.11.130中配置:
[root@Cyber4K ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses '192.168.11.130/24' ipv4.gateway '192.168.11.2' ipv4.dns '114.114.114.114'

[root@Cyber4K ~]# nmcli c reload

[root@Cyber4K ~]# nmcli c up ens32

# 在192.168.11.131中配置:
[root@node1 ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses '192.168.11.131/24' ipv4.gateway '192.168.11.2' ipv4.dns '114.114.114.114'

[root@node1 ~]# nmcli c reload

[root@node1 ~]# nmcli c up ens32

4.2 修改主机名及hosts映射

# 在192.168.11.130中配置
[root@server ~]# hostnamectl set-hostname Server-Web
[root@server ~]# vim  /etc/hosts
127.0.0.1  Server-Web
192.168.11.130 Server-Web
192.168.11.131 Server-NFS-DNS

[root@server ~]# reboot

# 在192.168.11.131中配置
[root@node1 ~]# hostnamectl set-hostname Server-NFS-DNS
[root@node1 ~]# vim  /etc/hosts
127.0.0.1  Server-NFS-DNS
192.168.11.130 Server-Web
192.168.11.131 Server-NFS-DNS

[root@node1 ~]# reboot

# 修改完主机名记得重启生效!

image-20250502183221568

4.3 开启防火墙并设置开机自启

# 两台机子都操作

systemctl  start  	firewalld
systemctl  enable  	firewalld
systemctl  status 	firewalld

image-20250502184018078

4.4 SELinux设置

# Server-Web端关闭
[root@Server-Web ~]# setenforce 0

# Server-NFS-DNS端修改配置文件至Permissive
[root@Server-NFS-DNS ~]# vim /etc/selinux/config 
[root@Server-NFS-DNS ~]# reboot
[root@Server-NFS-DNS ~]# getenforce 
Permissive

4.4 时间同步

# 两条机子都操作
vim  /etc/chrony.conf
server ntp.aliyun.com iburst  # 第三行更改
# 更改为阿里云的ntp:ntp.aliyun.com
systemctl restart chronyd
chronyc sources -v
timedatectl status

image-20250502184533603

image-20250502185741147

4.5 配置免密SSH登录

# 在192.168.11.130(Server-Web)中配置
[root@Server-Web ~]# ssh-keygen -t rsa       # 生成公钥私钥,一路回车
[root@Server-Web ~]# ssh-copy-id 192.168.11.131
[root@Server-Web ~]# ssh 192.168.11.131  
[root@Server-Web ~]# exit

# 在192.168.11.131(Server-NFS-DNS)中配置
[root@Server-NFS-DNS ~]# ssh-keygen -t rsa
[root@Server-NFS-DNS ~]# ssh-copy-id 192.168.11.130
[root@Server-NFS-DNS ~]# ssh 192.168.11.130  
[root@Server-NFS-DNS ~]# exit

image-20250502190038420

5. 环境搭建

5.1 Server-Web端安装LNMP环境软件

[root@Server-Web ~]# yum  install  nginx  mariadb-server  php*  -y

5.2 Server-NFS-DNS端上传博客软件

  • 网址:cn.wordpress.org/ ,下载后为zip压缩文件
  • 将wordpress使用xftp上传到192.168.11.131(Server-NFS-DNS)端的/目录下

image-20250502190518236

  • 解压缩后并查看:
[root@Server-NFS-DNS ~]# cd  /
# 最好使用6.1的版本
[root@Server-NFS-DNS /]# unzip wordpress-6.1-zh_CN.zip
[root@Server-NFS-DNS /]# cd  wordpress
[root@Server-NFS-DNS /]# ls

5.3 Server-NFS-DNS端设置NFS共享

  • 目的:
    • 将Server-NFS-DNS端的/wordpress 目录共享给192.168.11.130(Server-Web)
[root@Server-NFS-DNS ~]#yum install rpcbind nfs-utils -y

[root@Server-NFS-DNS ~]# vim  /etc/exports    # 编辑配置文件
/wordpress   192.168.11.130(rw,sync,all_squash)   # 添加

# 设置权限
[root@Server-NFS-DNS ~]# chmod  -Rf  777  /wordpress

# 防火墙添加服务放行
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone=public --add-service=mountd

[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone=public --add-service=rpc-bind

[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone=public --add-service=nfs

[root@Server-NFS-DNS ~]# firewall-cmd --reload

# 开启服务
[root@Server-NFS-DNS ~]# systemctl start rpcbind

[root@Server-NFS-DNS ~]# systemctl start nfs-server

5.4 Server-Web设置

5.4.1 挂载远程共享目录
[root@Server-Web ~]# yum install rpcbind nfs-utils -y

# 查询NFS服务器导出共享目录的命令
[root@Server-Web ~]# showmount -e 192.168.11.131

# 新建本地挂载目录
[root@Server-Web ~]# mkdir /wp

# 挂载
[root@Server-Web ~]# mount -t nfs 192.168.11.131:/wordpress  /wp

# 查看如下图所示:
[root@Server-Web ~]# cd /wp
[root@Server-Web wp]# ls

image-20250502194208472

5.4.2 nginx设置
# 放行协议及端口号并重置
[root@Server-Web ~]# firewall-cmd --permanent --zone=public --add-service=http

[root@Server-Web ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp

[root@Server-Web ~]# firewall-cmd --reload

# 修改nginx服务配置文件
[root@Server-Web ~]# vim /etc/nginx/nginx.conf
			root		/wp;
# 记得重启服务
[root@Server-Web ~]# systemctl restart nginx

image-20250502194754480

5.4.3 修改wordpress配置文件
[root@Server-Web ~]# cd  /wp
[root@Server-Web wp]# cp  wp-config-sample.php  wp-config.php   # 根据模板拷贝配置文件

# 编辑wp-config.php配置文件
[root@Server-Web wp]# vim  wp-config.php
# 定位23行修改后半部分
define('DB_NAME', 'wordpress'); # WordPress数据库的名称

define('DB_USER', 'test1');     # MySQL数据库用户名

define('DB_PASSWORD', '123456');  # MySQL数据库密码 

image-20250502195805387

5.4.4 启动数据库
[root@Server-Web ~]# systemctl start mariadb
5.4.5 在数据库中创建数据库和用户
[root@Server-Web ~]# mysql
MariaDB [(none)]> create database wordpress;  # 创建数据库,尾部有分号
MariaDB [(none)]> create user 'test1'@'localhost' identified by '123456';  # 第一个''为数据库账号,@后面的''内容为数据库可以登录的地址,localhost意为只能本机登录。用户和密码与wordpress配置文件一样,
MariaDB [(none)]> grant all on wordpress.* to 'test1'@'localhost';  # 给用户授权
MariaDB [(none)]> exit   # 退出
5.4.6 重启数据库和http
[root@Server-Web ~]# systemctl  restart mariadb
[root@Server-Web ~]# systemctl  restart nginx

6. 测试

  • 在windows端输入192.168.11.130继续完成wordpress配置 (邮箱必须设置)
  • 此时只能实现IP访问,使此网站使用域名访问还需进行DNS配置

image-20250502200524876

image-20250502200636460

7. 在Server-NFS-DNS端配置DNS

原则:www.openlab.com正向解析为:192.168.11.130

  • 安装及防火墙的放行
[root@Server-NFS-DNS ~]# cd ~
[root@Server-NFS-DNS ~]# yum install bind -y
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone=public --add-service=dns  # 防火墙放行
[root@Server-NFS-DNS ~]# firewall-cmd --reload
[root@Server-NFS-DNS ~]# systemctl start named
  • 编辑主配置文件/etc/named.conf
[root@Server-NFS-DNS ~]# vim  /etc/named.conf

# 第11  19行修改为any任意主机 
11         listen-on port 53 { any; };

19         allow-query     { any; };

image-20250502202146543

  • 修改区域配置文件/etc/named.rfc1912.zones,清空添加
[root@Server-NFS-DNS ~]# vim /etc/named.rfc1912.zones

zone "openlab.com" IN {
        type master;
        file "openlab.com.zone";
        allow-update { none; };
};
  • 新建区域数据文件并配置解析
[root@Server-NFS-DNS ~]# cd  /var/named
[root@Server-NFS-DNS named]# cp  -a  named.localhost  openlab.com.zone
[root@Server-NFS-DNS named]# vim  openlab.com.zone
# 添加正向解析,注意:解析为192.168.48.130web服务器
$TTL 1D
@       IN SOA  openlab.com. admin.openlab.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.com.
ns      IN      A       192.168.48.130
www     IN      A       192.168.48.130
bbs     IN      A       192.168.48.130

image-20250502203056473

  • 启动服务
[root@Server-NFS-DNS named]# systemctl restart named
  • 测试:
[root@Server-NFS-DNS ~]# curl www.openlab.com
<!DOCTYPE html><html><head><script>window.onload=function(){window.location.href="/lander"}</script></head></html>