通過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端口
配置wordpress裡的配置檔案:
#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
