NFS文件存储及论坛项目搭建(php)

发布于:2025-07-12 ⋅ 阅读:(18) ⋅ 点赞:(0)

NFS文件存储

一、概述

NFS是Network File System的缩写,默认监听2049端口号。它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS工作原理

NFS服务端和客户端之间通过随机选择端口来传输数据,NFS服务端利用RPC协议与客户端进行沟通决定使用的随机端口,然后利用这个端口来传输数据,使用的随机端口通常小于1024。RPC协议用来统一管理NFS的随机端口,其使用的端口默认为111。

RPC与NFS通讯过程
  1. 首先服务器端启动RPC服务,并开启111端口
  2. 服务器端启动NFS服务,并向RPC注册端口信息
  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
  5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

准备工作:

准备3台:1台服务器,2台网站端
每台主机都安装mysql、nfs、php并且每台主机都需要关闭防火墙,关闭上下文。

#关闭防火墙
systemctl stop firewalld
#关闭上下文
setenforce 0
#安装mysql、nfs、php
[root@localhost mysql]# yum install -y nfs-utils nginx 
[root@localhost mysql]# yum install -y php-mysqlnd php php-fpm  
[root@localhost mysql]# yum install -y  mysql-server.x86_64 

配置

启动服务

systemctl start nfs-server.service
systemctl status nfs-server

创建目录

mkdir -p /home/data

//直接读取服务器上的 /etc/exports 配置文件(这是定义所有 NFS 共享的核心文件)。

vim /etc/exports

/home/data      192.168.49.0/24(rw,sync,no_root_squash)

//管理 NFS 共享的导出。它的核心功能是 ​让对 /etc/exports 配置文件所做的修改立即生效,而无需重启 NFS 服务(如 nfs-server 或 nfs-kernel-server)。

[root@server home]# exportfs -arv

// ​查询一个 NFS(Network File System)服务器,列出该服务器当前导出的(共享出来的)文件系统目录。

[root@server data]# showmount -e
Export list for lnmp-server:
/data 192.168.49.0/24
[root@server data]# vim mysql_conn.php

<?php
        $link =mysqli_connect('localhost','root','');
        if ($link) {
                echo "连接成功!";
        }else {
                echo "连接失败!";
        }
        mysqli_close($link);
?>

web1端设置

挂载
查看共享文件,将其挂载到nginx的默认网站根目录路径

[root@web1 ~]# showmount -e 192.168.49.154
Export list for 192.168.49.154:
/home/data 192.168.49.0/24

挂载

[root@lnmp-web1 ~]# mount 192.168.49.154:/home/data /usr/share/nginx/html/

重载

[root@web1 ~]# systemctl start php-fpm
[root@web1 ~]# systemctl restart nginx.service 
[root@web1 ~]# systemctl restart mysqld
[root@web1 ~]# systemctl restart php-fpm

web2端设置

挂载

[root@web2 ~]# showmount -e 192.168.49.154
Export list for 192.168.49.154:
/home/data 192.168.49.0/24
[root@web2 ~]# mount 192.168.49.154:/home/data /usr/share/nginx/html/

重载

[root@web2 ~]#  systemctl start php-fpm
[root@web2 ~]# systemctl restart nginx.service 
[root@web2 ~]# systemctl restart mysqld
[root@web2 ~]# systemctl restart php-fpm

验证
使用客户端访问web
![在这里插入图片描述](https://i-blog.csdnimg


网站公告

今日签到

点亮在社区的每一天
去签到