实验内容:
(1) nfs server导出/data/application/web,在目录中提供wordpress;
(2) nfs client挂载nfs server导出的文件系统至/var/www/html;
(3) 客户端(lamp)部署wordpress,并让其正常访问;要确保能正常发文章,上传图片;
(4) 客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html;验正其wordpress是否可被访问; 要确保能正常发文章,上传图片;
这里用于实验的3台主机:
#服务端主机IP为:172.16.100.32 提供目录共享,提供mysql数据库
#客户端主机IP为:172.16.100.31 挂载目录
#客户端主机IP为:172.16.100.33 挂载目录
首先服务端主机安装nfs-utils
[[email protected] ~]# yum install nfs-utils 默认应该是安装的
#然后创建一个需要导出的目录
[[email protected] ~]# mkdir -pv /data/application/web
#编辑配置文件/etc/exports
[[email protected] ~]# vim /etc/exports
#表示要导出共享的目录 以及哪个ip地址的客户端可以挂载,这里是172.16网段的所有客户端, 并且有读写权限
#在服务端上创建用户并且赋予权限;
[[email protected] ~]# useradd apache 查看ID号
[[email protected] ~]# setfacl -m u:apache:rwx /data/application/web
#查看一下apache的ID
[[email protected] ~]# id apache
uid=1003(apache) gid=1003(apache) groups=1003(apache) 记住ID号 等会要去客户端改
#重启服务,生产环境中不建议重启 ,这里有一个命令可以导出所有
[[email protected] ~]# exportfs -ar
#然后客户端即可挂载使用了;用命令mount -t 相当于mount.nfs
[[email protected] ~]# mount -t nfs 172.16.100.32:/data/application/web /var/www/html
#格式: 挂载主机的IP以及服务端共享出来的目录路径 后面是挂载至客户端的哪个目录下
#可以用mount命令查看是否挂载成功以及详细的信息;
[[email protected] ~]# mount
172.16.100.32:/data/application/web on /var/www/html type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.100.31,local_lock=none,addr=172.16.100.32)
#但是现在客户端上的用户还没有对这个/var/www/html目录拥有写权限;
#apache的ID号必须和服务端拥有权限用户的ID号一样,这样才能映射服务端用户ID到客户端用户ID所能拥有的权限;
#其实还有一个方法,可以指定运行httpd的用户和组 在主配置文件里面改下即可
暂时不用这个方法
#先把pache的ID号改成和服务端一样的ID号 这样就有挂载过来目录的权限了
[[email protected] ~]# usermod -u 1003 apache
[[email protected] ~]# groupmod -g 1003 apache
#如果想查看服务端有哪些目录可以挂载以及已经挂载了哪些可以用命令showmount -e 查看;
[[email protected] html]# showmount -e 172.16.100.32
Export list for 172.16.100.32:
/data/application/web 172.16.0.0/16
#下面我们在服务端上提供wordpress文件;然后让其客户端配置并能让其正常访问;
安装httpd服务
#在mariadb中创建数据库以及用户名密码为wordpress提供;
先进mysql 然后如下
mysql> GRANT ALL ON wpdb.* TO ‘wpuser‘@‘172.16.%.%‘ IDENTIFIED BY ‘wppass‘;
mysql> FLUSH PRIVILEGES;
mysql> CREATE DATABASE wpdb;
#修改wordpress配置文件
[[email protected] ~]$ vim /var/www/html/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.32‘); 这里指向的是服务端主机IP
/** 创建数据表时默认的文字编码 */
define(‘DB_CHARSET‘, ‘utf8‘);
/** 数据库整理类型。如不确定请勿更改 */
define(‘DB_COLLATE‘, ‘‘);
下面就验证一下是否可以访问以及正常使用
成功了;
#下面我们继续第2台客户机,和第一台的主机步骤一样下面我就简单写下步骤;
[[email protected] yum.repos.d]# yum install httpd php php-mysql 安装rpm包
#先把pache的ID号改成和服务端一样的ID号 这样就有挂载过来目录的权限了
[[email protected] ~]# usermod -u 1003 apache
[[email protected] ~]# groupmod -g 1003 apache
[[email protected] yum.repos.d]# systemctl start httpd 启动服务
[[email protected] yum.repos.d]# systemctl start mariadb 启动服务
#挂载服务端导出的目录;用命令mount -t 相当于mount.nfs
[[email protected] ~]# mount -t nfs 172.16.100.32:/data/application/web /var/www/html
#格式: 挂载主机的IP以及服务端共享出来的目录路径 后面是挂载至客户端的哪个目录下
#可以用mount命令查看是否挂载成功以及详细的信息;
[[email protected] ~]# mount
172.16.100.32:/data/application/web on /var/www/html type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.100.33,local_lock=none,addr=172.16.100.32)
#因为共享的目录里面提供了wordpress以及里面的配置第一台客户端已经配置好了,所以这里就不需要重新配置了;
#然后即可登录测试是否可登录第2台客户机,是否可以发博文,数据存储是否可用;
#登录成功,因为第一台客户机登录的时候已经安装了并且这个文件是共享的所以一进来可以看到客户机1发的文章
#下面我们在发一篇文章如果可以发图片则大功告成;
成功;