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都為同ID,rpm安裝的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.www58058.com/53748

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

相關推薦

  • jackcui0804作業

    (1)顯示/proc/meminfo 文件中以大小s 開頭的行;( 要求:使用兩種方式) [root@centos7 ~]# cat /proc/meminfo | grep -e "^s.*" -e "^S.*" SwapCac…

    Linux干貨 2016-08-08
  • 權限管理練習題

    權限管理練習題:     1、當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作?         不能cd到該目錄下,不能ls -l訪問目錄里面文件元數據的信息    &nbsp…

    Linux干貨 2016-08-04
  • mysql-proxy 讀寫分離

    1. 簡介     mysql-proxy 是官方為此的一個測試,項目, 可以完成讀寫分離。但是項目目前還不是很成熟,這里僅作測試。  2. mysql-proxy安裝部署 # wget http://downloads.mysql.com/archives/get/file/mysql-…

    Linux干貨 2015-12-21
  • 邏輯卷的創建、維護和遷移

    邏輯卷管理器(LVM)介紹: 1、允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小 2、允許在多個物理設備間重新組織文件系統 (1)將設備指定為物理卷 (2)用一個或者多個物理卷來創建一個卷組 (3)物理卷是用固定大小的物理區域(Physical Extent,PE)來 定義的 (4)在物理卷上創建的邏輯卷 是由物理區域(PE)組成 (5)可以在邏輯…

    Linux干貨 2017-12-10
  • 細數Linux發行版

    什么是Linux 廣義上講:Linux內核+應用程序狹義上講:Linux內核  > Linux內核指的是我們通常所說的Kernel,主要用于負責系統調用、進程管理、內存管理、文件系統管理等功能。  應用程序指的是由GNU組織提供的開源的、通用的應用程序,如gcc、glibc、vi等。 我們平常所說的Linux,通常指廣義層面上的Li…

    Linux干貨 2017-08-30
  • Linux第四周總結

    1、復制/etc/skel目錄為/home/tuser1, 要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop, 其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。 4、復制/etc/…

    2017-07-24
欧美性久久久久