#####################################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服务端)