一.建立LVM用做NFS文件系统的存储盘。
实际应用的话建议使用单独的磁盘,由于是实验测试这里就在自己的虚拟机硬盘上简单的分了两个10G的分区,分区过程就不过多介绍来,分区后如图所示

基于NFS的LAMP_lamp


其中的sda5和sda6将用于创建LVM。
创建pv #pvcreate /dev/sdb5
#pvcreate /dev/sdb6
创建vg #vgcreate myvg /dev/sdb5 /dev/sdb6
创建lv #lvcreate -L 5G -n web myvg
#lvcreate -L 5G -n mydata myvg
格式化lv #mke2fs /dev/myvg/web
#mke2fs /dev/myvg/mydata
挂载lv #partprobe
#mkdir -pv /www/{htdocs,mydata}
#mount /dev/myvg/web /www/htdocs
#mount /dev/myvg/mydata /www/mydata
此时使用df -lh 可以查看到新的硬盘信息,如下

基于NFS的LAMP_lamp_02


为系统添加mysql用户和mysql组
#groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -M -s /sbin/nologin mysql
将/www目录的属主属组设置为mysql
#chown -R mysql:mysql /www

二.设置NFS
首先查询软件是否安装:# rpm -qa | grep nfs
#rpm -qa | grep protmap

基于NFS的LAMP_apache_03

如果得到如图的查询结果说明已经安装过了,如果没有安装请自行安装。
为了实现预期的功能需要编辑NFS的主配置文件/etc/exports,该文件默认为空,需要自己编辑,该文件的格式为
/tmp *(ro) 192.168.0.0/24(rw)
表示所有人对/tmp目录有制度权限,192,168.0.0/24这个网段读这个目录有读写权限。下面我们就根据要求来编辑该文件,vim /etc/exports,写入
/www/htdocs 172.16.0.0/16(rw,async) 10.0.0.0/8(ro)
/www/mydata 172.16.0.0/16(rw,async) 10.0.0.0/8(ro)
保存退出,然后启动nfs服务,建议启动钱使用setenforce 0来关闭selinux。
#service nfs start
这时就可一在客户端中查看共享目录了
#showmount -e 192.168.0.166
三.准备客户端
首先来配置第一台客户端,为其命名为www1.
为该主机创建与NFS服务器相同的mysql用户和mysql组
#groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -M -s /sbin/nologin mysql
在该主机上安装LAMP,可以选择手动编译安装和直接使用rpm包进行安装,这里我就直接使用rpm包进行安装了
#yum install httpd
#yum install php
接下来安装mysql
解压mysql数据包到/usr/local下:#tar xf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/
为方便使用,给mysql-5.5.15-linux2.6-i686创建链接: cd /usr/local/
# ln -sv mysql-5.5.15-linux2.6-i686/ mysql
然后将mysql目录的属组属主都改为mysql: chown -R mysql:mysql .
初始化Mysql: #scripts/mysql_install_db --user=mysql --datadir=/data/mysqldata
完成后将当前目录的属主再改回root。
接下来为mysql主被服务启动的执行脚本:#cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld 添加到服务队列
#chkconfig mysqld on 设置开机启动
# cp support-files/my-large.cnf /etc/my.cnf 在该文件中为mysql指定非默认的数据存放位置,即我们上面建立的/data/mysqldata,编辑该文件
# vim /etc/my.cnf
在[mysqld]字段中添加 datadir = /data/mysqldata 保存退出。
之后就可以使用#service mysqld start 来启动mysql服务了。

挂载nfs #mkdir -pv /www/{web,mydata}
#mount -t nfs 192.168.0.166:/www/htdocs /www/web
#mount -t nfs 192.168.0.166:/www/mydata /www/mydata
打开apache的配置文件/etc/httpd/httpd.conf,将其网页存放目录改为/www/web
找到
#AddType application/x-gzip .gz .tgz
下加二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
还有找到DirectoryIndex index.html
加上 index.php 让它把index.php做为默认页
四.安装wordpress
将下载的安装包wordpress-3.0.4-zh_CN.zip解压到/www/web目录下
在测试主机的浏览器内输入www1的IP地址172.16.0.165会出现如下安装界面进行安装

基于NFS的LAMP_mysql_04


按照提示连接好数据库并进行相关设置后即可进入网站主页。

 

基于NFS的LAMP_php_05

五.设置另一台主机www2
主机www2的设置过程相对简单,依照上面设置www1的步骤,除去mysql的安装不做,因为使用的是nfs文件系统不需要重复设置,只需安装服务并进行挂载即可,对www2的httpd.conf进行与www1相同的设置,并重启apache服务,在测试主机的浏览器内输入www2的IP地址172.16.0.166,可以打开和www1一样的网站页面

基于NFS的LAMP_lfs_06


为了验证效果,我们在此处添加一篇文章

基于NFS的LAMP_php_07


再来到www1上打开主页,可以看到
说明nfs设置成功。

 

下面是一些NFS共享的常用参数:

 

 

ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID