#####################################php
Local Procedure Call爲開發帶來的不便html
Remote Procedure Call的引入mysql
Network File System程序員
NFS在LAMP架構下的應用sql
#####################################
數據庫
Local Procedure Call爲開發帶來的不便
編程
本地兩個進程或進程和內核之間調用函數完成某種功能的過程叫作本地過程調用。vim
Remote Procedure Call的引入瀏覽器
遠程過程調用,不一樣主機上的兩個進程直接依賴於二進制協議通訊,它是編程技術及協議,簡化分佈式應用程序的開發,它一種開發框架,在這種框架下,程序員開發程序無需再考慮網絡報文的封裝,有RPC底層機制負責完成,RPC自己只是一種協議,它的實現是Portmap。安全
1、NFS簡介
和ext三、ext2等同樣,也位於內核空間做爲內核模塊工做的,它基於RPC基礎實現,不一樣主機上的兩個進程直接依賴於二進制協議通訊,它可讓遠程文件系統掛載到本地一個目錄。nfs-utils是NFS的安裝包,包含了三個主進程:
nfsd (文件傳輸主進程) 固定端口爲TCP/UDP 2049端口
mountd (接收客戶端掛載請求) 動態向portmap註冊端口
quotad (磁盤配額進程) 動態向portmap註冊端口
/etc/exports 主配置文件
注意:因爲nfs是基於RCP協議實現,因此請確保portmap服務開啓
2、NFS工做機制
3、NFS使用方法
文件系統導出屬性
ro 只讀 rw 讀寫 sync 同步 async 異步 root_squach 將root用戶映射爲來賓帳號 no_root_squach 很是不安全,客戶端管理員此時等於服務器端管理員權限。 all_squash 把用戶所有映射爲來賓用戶,最安全 anonuid,anongid 指定映射的來賓帳號UID和GID
簡單的經過映射用戶ID來標識文件屬主和屬組,客戶端只要有用戶ID號跟服務器端同樣,就能夠具備相應權限,至關不安全,所以一般能夠把一個目錄或文件鎖定爲一個服務器端能控制的用戶,而全部用戶的權限等於此用戶的權限,例如:
NFS服務端 useradd-u 510 nfstest touch/shared/nfstest chownnfstest.nfstest /shared/nfstest vim /etc/exports 修改主配置文件 /shared192.168.1.0/24(rw,all_squash,anonuid=510,anongid=510) exportfs -ra
客戶端從新掛載並看結果
showmount命令
mount-t nfs 192.168.1.30:/shared/tmp/nfs 掛載遠程NFS共享目錄至本地 showmount -a 192.168.1.30 顯示NFS服務器全部文件系統掛載狀況 showmount -e 192.168.1.30 顯示NFS服務器已被掛在的文件系統和客戶端列表 showmount -d 192.168.1.30 顯示NFS服務器已被掛在的文件系統列表
exportfs命令(無需重啓服務讓配置文件生效)
-a -r 從新導出 -u 取消導出 -v 顯示過程 -arv 從新導出配置文件內容 -auv (取消全部導出文件系統)
開機自動掛載
vim /etc/fstab 192.168.1.30:/shared /tmp/nfs nfs defaults,_rnetdev 0 0
讓mountd和quotad等進程監聽在固定端口
vim /etc/sysconfig/nfs MOUNTD_PORT=892 RQUOTAD_PORT=875 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769
NFS在LAMP架構下的應用
1、NFS服務器端
部署LAMP平臺
##########################安裝LAMP########################## yum installhttpd httpd-develhttpd 安裝httpd yum installmysql mysql-server mysql-devel mysql 安裝mysql yum installphp53 php53-mbstring php53-mysqlphp 安裝php ##########################httpd############################# #AddDefaultCharset UTF-8 修改字符集 unzip Discuz_X2.5_SC_GBK.zip 加壓論壇 mvupload/* /var/www/html/ 發佈論壇 service httpd start 啓動服務 ##########################mysql############################# mysqladmin -uroot -p password 'redhat' 爲數據庫添加密碼 grant all privileges on *.* to root@'%'identified by 'redhat'; 遠程受權root service mysqld start 啓動服務 ##########################修改權限安裝論壇################## cd/var/www/html chmod777 config/ data/ data/cache/data/avatar/data/plugindata/data/download/data/addonmd5/data/template/data/threadcache/data/p_w_upload/data/p_w_upload/album/data/p_w_upload/forum/data/p_w_upload/group/data/log/uc_client/data/cache/uc_server/data/uc_server/data/cache/uc_server/data/avatar/uc_server/data/backup/uc_server/data/logs/uc_server/data/tmp/uc_server/data/view/
啓動NFS服務
service portmap status 檢測portmap服務 vim /etc/exports 修改主配置文件 /var/www/html 192.168.1.240(rw,no_root_squash) exportfs –ra 從新導出目 service nfs start 啓動nfs服務
2、NFS客戶端
###########################安裝LAP平臺########################## yum install httpd httpd-devel 安裝httpd yum install php53 php53-mbstring php53-mysql 安裝php service httpd start 啓動服務 ##########################NFS客戶端############################# mount -t nfs 192.168.1.230:/var/www/html /var/www/html 掛載目錄 #AddDefaultCharset UTF-8 修改字符集 service httpd start 啓動服務
3、測試
客戶端使用瀏覽器訪問192.168.1.240(NFS客戶端)
客戶端使用瀏覽器訪問192.168.1.230(NFS服務端)