LAMP及nfs、samba的综合练习

blob.png

练习一:

配置第一台主机:服务端共享目录:

[root@localhost /]# yum install nfs-utils
[root@localhost /]# systemctl start rpcbind
[root@localhost /]# systemctl start nfs
[root@localhost /]# ss -tnl
State    Recv-Q Send-Q Local Address:Port          Peer Address:Port              
LISTEN      0      64          *:2049            *:*

[root@localhost ~]# cat /etc/exports
/mysql/data 10.1.252.28/16(rw,sync)
[root@localhost /]# exportfs -ar

然后更改共享目录的权限:此部分为测试,在测试部分。

 

配置第二台主机:

挂载共享:

[root@localhost mnt]# showmount -e 10.1.49.11
Export list for 10.1.49.11:
/mysql/data 10.1.252.28/16
[root@localhost mnt]# mount -t nfs 10.1.49.11:/mysql/data  /mydata

安装mysql

[root@localhost ~]yum install mysql
[root@localhost ~]yum install mysql-devel  mysql-server 
[root@localhost ~]# service mysqld start
[root@localhost ~]# ss -tnl
State   Recv-Q  Send-Q   Local Address:Port      Peer Address:Port 
LISTEN     0     50       *:3306                        *:*    
[root@localhost ~]# mysql_secure_installation
[root@localhost ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

更改mysql的数据库数据路径:

[root@localhost ~]# vim /etc/my.cnf

 

配置第三台主机:

挂载共享,同上台主机:

[root@localhost ~]# iptables -F 
[root@localhost ~]# setenforce 0
[root@localhost ~]# mount -t nfs 10.1.49.11:/mysql/data /mydata

测试及结论:

对共享目录设置不同权限:

(1)此处使用777权限先测试

[root@localhost /]# chmod 777 -R /mysql

结果:能在目录下创建文件,能正常启动mysql并使用,但是提示无法修改权限:

[root@localhost testdir]# service mysqld start 
chown: 正在更改"/testdir/data" 的所有者: 不允许的操作
chmod: 更改"/testdir/data" 的权限: 不允许的操作
正在启动 mysqld:                              [确定]

两台主机不能同时启用,设置acl权限的效果也是如此。

(2)测试共享的目录不压缩root权限并且其它人有7的权限,因为挂载之后mysql是以其它人的方式访问:

[root@localhost /]# cat /etc/exports
/mysql/data 10.1.252.28/16(rw,no_root_squash,sync)

结果:单台主机可以正常使用,并且目录及文件的属组属主都重新初始化为了mysql主和mysql组。两台主机不能同时启动。

(3)测试mysql都为同IDrpm安装的mysql默认id都为27

[root@localhost ~]# service mysqld stop
Stopping mysqld:                                           [  OK  ]
[root@localhost ~]# umount /mydata/
[root@localhost /]# cat /etc/exports
/mysql/data 10.1.252.28/16(rw,sync)
[root@localhost /]# chmod 755 /mysql/data/ -R 
[root@localhost /]# chown mysql:mysql /mysql   -R 
[root@localhost /]# ll /mysql/
总用量 4
drwxr-xr-x. 5 mysql mysql 4096 10月 18 19:19 data
[root@localhost /]# exportfs -ar

重启服务:

[root@localhost mydata]# !servi
service mysqld  restart 
Stopping mysqld:                               [  OK  ]
chown: changing ownership of `/mydata': Operation not permitted
chmod: changing permissions of `/mydata': Operation not permitted
Starting mysqld:                           [  OK  ]

会报错提示不允许更改权限,但是能够正常使用。说明需要root权限更改目录属主属组和和权限,因为默认目录就是755的并且属组主都为mysql

最好的方法就是压缩root权限并更改相同IDmysql,因为mysql在使用数据文件时会加锁LAMP及nfs、samba的综合练习,因此不能两个mysql操作同一个目录的数据。如今为了实现冗余性,会利用软件的方式,将两个mysql结合在一个数据库数据路径上,当一台主机故障,立即启用另一台。

注意:遇到的问题:yum安装的mysql是没有my.cnf的配置文件的,系统安装时会自带,若没有配置文件,可以复制默认使用的配置文件my-medium.cnf到/etc/my.cnf来使用。


练习二:

服务端:配置环境

[root@localhost test]# yum install samba
[root@localhost test]# service nmb start 
Starting NMB services:                                     [  OK  ]
[root@localhost test]# service smb start 
Starting SMB services:                                     [  OK  ]
[root@localhost mydata]# useradd centos
[root@localhost mydata]# passwd centos
[root@localhost mydata]# useradd gentoo
[root@localhost mydata]# passwd gentoo

设置文件权限:

[root@localhost ftp]# setfacl -m u:gentoo:rwx pub
[root@localhost ftp]# setfacl -m u:centos:rwx pub

添加用户:

[root@localhost ftp]# smbpasswd -a centos
New SMB password:
Retype new SMB password:
Added user centos.
[root@localhost ftp]# smbpasswd -a gentoo
New SMB password:
Retype new SMB password:
Added user gentoo.

客户端

使用可写的用户centos登录:

[centos@localhost pub]$ smbclient //10.1.252.28/pub -U centos
Enter centos's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \> put issue
putting file issue as \issue (1.0 kb/s) (average 1.0 kb/s)
smb: \> ls
  .              D        0  Sun Sep 11 21:00:51 2016
  ..              D        0  Sun Sep 11 20:50:16 2016
  issue             A       47  Sun Sep 11 21:00:51 2016
  fstab                    946  Sun Sep 11 20:57:24 2016
40317 blocks of size 524288. 37594 blocks available
smb: \> rm fstab 
smb: \> ls
  .                    D        0  Sun Sep 11 21:01:13 2016
  ..                    D        0  Sun Sep 11 20:50:16 2016
  issue                   A       47  Sun Sep 11 21:00:51 2016
40317 blocks of size 524288. 37594 blocks available

使用其他用户登录:

[centos@localhost pub]$ smbclient //10.1.252.28/pub -U ge
Enter ge's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \> ls
  .              D        0  Sun Sep 11 21:09:22 2016
  ..              D        0  Sun Sep 11 20:50:16 2016
  fstab            A      946  Sun Sep 11 21:09:16 2016
40317 blocks of size 524288. 37594 blocks available
smb: \> rm fstab
NT_STATUS_ACCESS_DENIED deleting remote file \fstab
NT_STATUS_ACCESS_DENIED listing \fstab

确实不可写。使用用户查看共享目录列表时也不显示pub目录:

[centos@localhost pub]$ smbclient -L //10.1.252.28 -U ge
Enter ge's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Sharename       Type      Comment
---------       ----      -------
IPC$         IPC       IPC Service (Samba Server Version 3.6.23-33.el6)
ge          Disk      Home Directories

注意:遇到的问题二:samba服务中:直接在操作文件系统的挂载目录而不使用客户端时,用除了root的其它用户都不能写。设置了acl权限时,即使是相同id,也无法在文件系统进行写操作;但是服务端给予的权限的用户和客户端用户相同ID的情况下,更改服务端的文件的属主属组时,如下:

[root@localhost ftp]# chown root:centos pub
[root@localhost ftp]# ll
total 4
drwxrwxr-x+ 2 root centos 4096 Sep 11 21:26 pub

此时在客户端挂载,就可以实现写操作,证明是基于ID映射权限,而且acl的权限并不进行ID映射:

[ge@localhost ~]$ cd /mnt/pub/
[ge@localhost pub]$ ls
fstab
[ge@localhost pub]$ rm fstab


练习3:

共享端:配置环境:

[root@localhost ftp]mkdir -pv /data/app/web
[root@localhost ftp]# mv wordpress/* -f   /data/app/web/

注意:遇到的问题三:更改属主属组,并将其父目录也更改为apache,因为wordpress需要自动新建配置文件(Discuz也需要权限来写入文件,但是不需要父目录的写权限,因为其并不新建文件,只修改文件):

[root@localhost web]# chown apache:apache ./* -R 
[root@localhost app]# chown apache:apache web

将目录共享:

[root@localhost web]# cat /etc/exports
/data/app/web  10.1.49.10/16(rw,sync)
/data/app/web   10.1.49.11/16(rw,sync)
[root@localhost web]# exportfs  -ar 
[root@localhost web]# service rpcbind start
[root@localhost web]# service nfs start 
Starting NFS services:                       [  OK  ]
Starting NFS quotas:                        [  OK  ]
Starting NFS mountd:                        [  OK  ]
Starting NFS daemon:                        [  OK  ]
Starting RPC idmapd:                        [  OK  ]

在三台主机的任一主机上安装数据库:

然后新建数据库并且授权用户,使此用户可以通过任何主机(%通配)访问数据库的任何库和表(不建议全部授权,要授权指定的库)

MariaDB [(none)]> GRANT ALL ON *.* TO 'wordpress'@'%' IDENTIFIED BY 'magedu';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> FLUSH PRIVILEGES;

测试连接数据库:可以在另一台主机上使用mysql -uwordpress -h10.1.49.11 -pmagedu。使用-h指明要登录的主机ip

 

主机1:

挂载目录:

[root@localhost html]# mount -t nfs 10.1.252.28:/data/app/web /var/www/html

安装网站:在此步骤前,数据库自己先建立好,用户名密码使用授权的用户进行登录数据库的主机填写数据库所在的主机IP

blob.png

因为wordpress速度太慢,改为Discuz,步骤基本相同

安装完成后访问:

blob.png


配置主机2:

[root@localhost Packages]# mount -t nfs 10.1.252.28:/data/app/web  /var/www/html/

挂载后直接访问:

blob.png

测试

使用admin账号发帖:刷新,两个ip都可以正常显示:

blob.png

注意:遇到的问题四:centos6中安装php之后,其模块配置文件在conf.d/目录下的php.conf中;

一定要注意授权的地址及库等正确;

安装时填写数据库要填写IP,在生产中为了存放数据都会单独使用数据库服务器;

配置lamp时注意与php的结合。

 

额外测试:

配置bind添加区域并将同一个域名解析为两个IP,也就是两条A记录;这样能够使登录网页后使用不同的ip进行登录也就实现了一定的负载均衡能力但是在浏览器中一般会有缓存,在真正使用时,可以将ip分别添加至网卡的别名中。当一台服务器故障,另一台服务器上有第一台的ip,也不会影响用户的直接访问。

blob.png

测试:可以使用ping命令或者dig检测:

注意:遇到的问题五:此处更改resolv.conf,使之通过252.28主机进行名称解析:

blob.png

使用ping命令,通过多次执行可以看出,两个IP交替出现,能够实现一定的负载均衡能力:

blob.png

blob.png

原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/53748

(0)
SilencePavilionSilencePavilion
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • 计算机网络知识,脚本编程_第八周练习

    Q1:请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Sw…

    Linux干货 2016-12-25
  • 逻辑卷

    §·逻辑卷管理器LVM介绍 ※·LVM逻辑卷的简单描述 lvm(logical volume manager 逻辑卷管理器)的可以弹性的调整文件系统的容量,支持任何块设备,需要使用dm模块:device mapper设备映射,将一个或多个底层设备组织成一个逻辑设备的模块。 lvm的重点在于弹性的调整文件系统的容量,而并非在于数据的存储效率及安全上面…

    Linux干货 2016-08-30
  • 8-8 sed 练习

    8-8 作业 1. 如何设置tab缩进为4个字符? 2. 复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log; 3. 删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

    Linux干货 2016-08-12
  • 自我介绍

    个人简介     基本信息:     何秋雨,男,安徽人,22岁,初中学历 工作经验:     目前就职于南京的一家互联网公司做Java Web 开发,大概有一年半的工作经验。工作内容包括前端和Java后端两个部分。 个人爱好:   &nb…

    Linux干货 2016-08-08
  • 计算机浅谈及Linux简谈

    一、计算机浅谈: 电子计算机(英语:computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数据进行处理的工具。 在现代,机械计算机的应用已经完全被电子计算机所替换,其所相关的技术研究叫计算机科学,而“计算机技术”指的是将计算机科学的成果应用于工程实践所派生的诸多技术性和经验性成果的总合。“计算机技术”与“计算机科学”是两个相关而又不同的概念,它…

    Linux干货 2016-11-29
  • Lvm的创建

    一、LVM相关基础:     PE:类似与磁盘的block,这个的大小也会影响VG的大小     PV:是磁盘分区或逻辑上与磁盘分区具有相同功能的设备(RAID),是LVM的基本存储模块,但与基本的物理存储模块相比,却包含有lvm相关的参数     VG:类似于非lvm系统中的物理磁盘,包含多个pv     LV:类似于非lvm系统中的磁盘分区   PV相关…

    2016-04-10