通过nfs与samba实现文件系统共享
序:
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
其优点为:节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用;用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用;一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
一. 准备工作:
安装所需rpm包:
yum install samba samba-clientnfs-utils
创建所需共享文件夹:
mkdir -pv /data/application/web
解压wordpress:
unzip wordpress-4.3.1-zh_CN.zip-C /data/application/web
二. Nfs文件共享:
编辑配置文件:#vim /etc/exports
添加行:/data/application/web172.16.0.0/16(rw)
权限种类:
ro:只读,rw:读写,sync:同步,async:异步,root_squash:压缩root用户,一般指将其映射为nfsnobody,no_root_squash:不压缩root用户,all_squash:压缩所有用户,anonuid and anongid:将压缩的用户映射为此处指定的用户;
添加用户:# useradd apache
查看uid:id apache
设置共享文件及权限:# setfacl -m u:apache:rwx /data/application/web
启动服务:systemctlstart nfs
客户端挂载:mount -t nfs 172.16.35.1:/data/application/web /var/www/html
注意:
1.nfs中用户id的权限是根据服务端的uid权限映射的。
2.showmount -e可以查看能挂载的文件路径
三.Samba文件共享:
1.服务端配置:
# systemctl start smb
#ss -tnl,samba使用的是137,138,139,445端口
#vim /data/application/web/wordpress/wp-config.php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wpdb');
/** MySQL数据库用户名 */
define('DB_USER', 'wpuser');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'wppass');
/** MySQL主机 */
define('DB_HOST', '172.16.100.31');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');
编辑samba的配置文件:
comment:注释信息;
path:当前共享所映射的文件系统路径;
browseable:是否可浏览,指是否可被用户查看;
guest ok:是否允许来宾账号访问;
public:是否公开所有用户;
writable:是否可写;
write list:拥有写权限的用户列表;
# vim /etc/samba/smb.conf
comment = wordpress 名称
path = /data/application/web 要导出的路径
browseable = yes
writable = yes
2.客户端配置:
挂载:
mount -t cifs -o username=apachepassword=admin //172.16.35.1/wordpress /var/www/html