1.实验需求
(1)nfs server导出/data/application/web,在目录中提供wordpress;
(2)nfs client挂载nfs server导出的文件系统,至/var/www/html;
(3)客户端1(lamp)部署wordpress,并让其正常访问,要确保正常发文章,上传图片。
(4)客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html,验证其wordpress是
否可被访问,要确保能正常发文章,上传图片。
(5)nfs server 导出/mydata/目录;
(6)nfs client挂载/mydata/至本地的/mydata目录,mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常存储数据。
2.服务器规划
服务器版本 | 角色 | 主机名 | IP地址 |
centos7.2x86_64 |
web服务器01(apache+php) nfs客户端 | web01 | 172.16.52.51 |
centos7.2x86_64 | web服务器02(apache+php) nfs客户端 | web02 | 172.16.52.52 |
centos7.2x86_64 | mysqld数据库服务 nfs客户端 | db | 172.16.52.53 |
centos7.2x86_64 | nfs服务端 |
nfs |
172.16.52.54
|
部署NFS服务端及nfs客户端
3.1 配置nfs服务端
(1)安装nfs软件
[root@nfs ~]# yum -y install nfs-utils [root@nfs ~]# rpm -qa nfs-utils nfs-utils-1.3.0-0.21.el7.x86_64
(2)启动nfs服务
开机自启动nfs服务:
[root@nfs ~]# systemctl enable rpcbind.service [root@nfs ~]# systemctl enable nfs-server.service
启动rpcbind和nfs服务:
注意要先启动rpcbind
[root@nfs ~]# systemctl start rpcbind.service [root@nfs ~]# systemctl start nfs.service
查看nfs状态:
[root@nfs ~]# rpcinfo -p
(3)配置nfs服务
[root@nfs ~]# cat /etc/exports /data/application/web 172.16.0.0/16(rw,sync,anonuid=888,anongid=888) /mydata 172.16.0.0/16(rw,sync,anonuid=3306,anongid=3306)
重新导出:
[root@nfs ~]# exportfs -arv exporting 172.16.0.0/16:/data exporting 172.16.0.0/16:/data/application/web
为nfs共享文件创建授权用户(uid):
这里我们不使用默认的nfsnobody用户
[root@nfs ~]# groupadd -g 888 apache [root@nfs ~]# useradd -u 888 -g apache -s/sbin/nologin -M apache [root@nfs ~]# id apache uid=888(apache) gid=888(apache) groups=888(apache) [root@nfs ~]# chown apache.apache/data/application/web [root@nfs ~]# ls -ld /data/application/web/ drwxr-xr-x 2 apache apache 6 Jul 20 04:27/data/application/web/
[root@nfs ~]# groupadd -g 3306 mysql [root@nfs ~]# useradd -u 3306 -g mysql -s/sbin/nologin -M mysql [root@nfs ~]# id mysql uid=3306(mysql) gid=3306(mysql) groups=3306(mysql) [root@nfs ~]# chown mysql.mysql /data [root@nfs ~]# ls -ld /data drwxr-xr-x 4 mysql mysql 35 Jul 20 04:27 /data
3.2 配置nfs客户端
注:3个nfs客户端配置都一样
安装软件包:
[root@db ~]# yum -y install nfs-utils
启动rpcbind:
客户端只用启动rpcbind即可。
[root@db ~]# systemctl start rpcbind
4.部署lamp环境
说明:本次lamp环境采用rpm包安装,数据库分离
web01 和web02 配置一样。
为了方便测试:web01域名blog.magedu.com;web02域名blog02.magedu.com
4.1 安装软件
[root@web01 ~]# yum -y install httpd php php-mysql
4.2 配置虚拟主机
[root@web01 conf.d]# cat blog.conf <VirtualHost *:80> ServerNameblog.magedu.com DocumentRoot"/var/www/html" CustomLog"/var/log/httpd/blog/access_log" combined ErrorLog "/var/log/httpd/blog/error_log" <Directory"/var/www/html"> OptionsNone AllowOverrideNone Requireall granted </Directory> </VirtualHost>
5. 部署mariadb数据库服务
mariadb采用通用二进制安装
[root@db soft]# ln -sv mariadb-5.5.46-linux-x86_64 mariadb [root@db soft]#ls mariadb mariadb-5.5.46-linux-x86_64
5.1 创建mysql用户
[root@db soft]# groupadd -g 3306 mysql [root@db soft]# useradd -u 3306 -g mysql mysql [root@db soft]# id mysql uid=3306(mysql) gid=3306(mysql) groups=3306(mysql)
5.2 创建数据目录并授权
[root@db soft]# mkdir /mydata [root@db soft]# chown -R mysql.mysql /mydata [root@db soft]# ls -ld /mydata drwxr-xr-x 2 mysql mysql 6 Jul 20 07:27 /mydata
5.3 初始化数据库
[root@db mariadb]# chown -R root.mysql /data/soft/mariadb/ [root@db mariadb]# cd /data/soft/mariadb [root@db mariadb]# scripts/mysql_install_db--user=mysql --datadir=/mydata --basedir=/data/soft/mariadb
5.4 配置/etc/my.cnf
# cp support-files/my-large.cnf /etc/my.cnf vim /etc/my.cnf [mysqld] port = 3306 basedir = /data/soft/mariadb datadir = /data/mydata innodb_file_per_table = 1 #让innodb表每个表一个表空间文件。
5.5 配置mysqld启动脚本
复制mysql启动脚本到/etc/init.d/mysqld
[root@db ~]# cp /data/soft/mariadb/support-files/mysql.server/etc/init.d/mysqld [root@db ~]# chmod 755 /etc/init.d/mysqld [root@db ~]# sed -i‘s#/usr/local/mysql#/data/soft/mariadb#g‘ /etc/init.d/mysqld [root@db ~]# chkconfig --add mysqld
修改PATH环境变量:
[root@db mariadb]# cat /etc/profile.d/mysql.sh export PATH=/data/soft/mariadb/bin:$PATH
配置库文件搜索路径:
[root@db mariadb]# echo"/data/soft/mariadb/lib" > /etc/ld.so.conf.d/mysqld.conf [root@db mariadb]# ldconfig
5.6 启动mysqld服务
[root@db /]# service mysqld start Starting MySQL.. SUCCESS! [root@db /]# lsof -i:3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 7668mysql 15u IPv4 23521 0t0 TCP *:mysql (LISTEN)
5.7 测试php与数据库的连接
注:事先创建好相关的库和用户
在web服务器站点下创建mysql.php 文件
[root@web01 html]# cat mysql.php <?php $conn= mysql_connect(‘172.16.52.53‘,‘wordpress‘,‘123456‘); if($conn) echo‘connect 172.16.52.53 is OK‘; else echo‘failure‘; ?>
5.8 把nfs服务端的/mydata/目录挂载至本地的/mydata
[root@db ~]# showmount -e 172.16.52.54 Export list for 172.16.52.54: /mydata 172.16.0.0/16 /data/application/web 172.16.0.0/16
[root@db ~]# ls -ld /mydata/ drwxr-xr-x 6 mysql mysql 4096 Jul 21 06:05 /mydata/
[root@nfs /]# ls -ld /mydata drwxr-xr-x 6 mysql mysql 4096 Jul 21 06:05 /mydata
把本地mysql数据目录/mydata里面的文件复制到nfs服务端的/mydata目录里
[root@db ~]# scp -r /mydata/*root@172.16.52.54:/mydata
重新对nfs服务端/mydata/下面的文件授权:
chown -R mysql.mysql /mydata
挂载:
mount -t nfs 172.16.52.54:/mydata /mydata
重启mysqld测试:
[root@db ~]# service mysqld restart Shutting down MySQL. SUCCESS! Starting MySQL.. SUCCESS! ok,没有问题。
6.部署web服务器站点目录
6.1 LAMP 01部署wordpress站点
站点目录严格授权:
[root@web01 html]# chown -R root.root/var/www/html/ [root@web01 html]# find /var/www/html/ -type f|xargs chmod 644 [root@web01 html]# find /var/www/html/ -type d|xargs chmod 755 [root@web01 html]# chown -R apache.apache/var/www/html/wordpress/wp-content
6.2 把nfs服务端的/data/application/web 挂载至web01本地的/var/www/html
(1)把/var/www/html下面的文件复制到/data/application/web目录下面
[root@web01 ~]# scp -rp /var/www/html/*root@172.16.52.54:/data/application/web/
(2)授权
[root@nfs~]# chown -R apache.apache /data/application/web/wordpress/wp-content/
(3)挂载
[root@web01 ~]# showmount -e 172.16.52.54 Export list for 172.16.52.54: /mydata 172.16.0.0/16 /data/application/web 172.16.0.0/16
[root@web01 wordpress]# mount -t nfs 172.16.52.54:/data/application/web/var/www/html
6.3 把nfs服务端的/data/application/web 挂载至web02本地的/var/www/html
(1)挂载
[root@web02 ~]# mount -t nfs172.16.52.54:/data/application/web /var/www/html
(2)访问blog02.magedu.com/wordpress/index.php
7. 总结
本次实验实现了web站点数据的共享,一定程度上实现session共享和负载均衡的功能。
原创文章,作者:island,如若转载,请注明出处:http://www.178linux.com/74598