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)
上一篇 2016-10-24 07:39
下一篇 2016-10-24 09:08

相关推荐

  • Linux第二周学习博客作业

    对第二周学习的内容进行总结

    Linux干货 2017-12-10
  • Linux之SELinux

      Linux之SELinux     本文包括以下内容SELinux概念启用SELinux管理文件安全标签管理端口标签管理SELinux布尔值开关管理日志查看SELinux帮助   SELinux介绍SELinux: Secure Enhanced Linux,是美国国家安全局(NSA=The National Se…

    Linux干货 2016-09-21
  • 当Web访问性能出现问题,如何深探?

    对运维或开发工程师来说,遇到访问性能问题时,最先需要定位的是问题出现在哪个环节,是网络的问题,服务端的问题,还是客户端的问题? 往往技术人员喜欢把精力放在保障后端服务的可用性方面,而对前端界面是否能正常装载,是否能完整渲染不是太关心。但从业务的角度来说,界面承载的才是最终的业务,业务是通过人机交互来实现的。 日常我们遇到哪些场景需要定位访问性能瓶颈? ·不同…

    系统运维 2017-01-09
  • 马哥教育络班22期-第1周博客作业

    第一周博客作业 1 描述计算机的组成及其功能 计算机由硬件和软件两大部分组成: 1.1 计算机硬件组成与功能 计算机硬件由运算器、控制器、存储器、输入设备、输出设备五大部分组成。 1.1.1 运算器 算术逻辑部件ALU,执行算术运算和逻辑运算。例如:加减乘除,移位,取模。运算器的核心是加法器。 1.1.2 控制器 控制器是计算机的指挥中心,它的主要作用是按照…

    Linux干货 2016-08-14
  • 磁盘管理之MBR与GPT分区

    磁盘管理之MBR与GPT分区 2016-08-26 zanghonglei%1 $ S 磁盘管理之MBR与GPT分区 linux下的文件分为常规文件和设备文件,常规文件一定在某一个设备上被存储,不论这个设备是真实的还是虚拟的,这里的设备是linux中vfs层中的设备,也就是设备文件中的设备,vfs层的设备分为字符设备和块设备,字符设备可以类比为一个…

    Linux干货 2016-08-29
  • N22-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     首先用who命令查看所有已登录用户信息,然后用cut命令取出用户名,再用sort -u对用户名排序并删除重复的用户名      2、取出最后登录到当前系统的用户的相关信息。  &n…

    Linux干货 2016-09-05