1、實驗需求:
1)CentOS 7, nfs+samba, ap, mariadb,
a) dns ,A記錄www.yang.com 分別指向後端的2臺web服務器ip地址
b) nfs+samba, nfs負責爲mariadb提供datadir,samba負責爲www1和www2提供wordpress
c) www1,安裝httpd2.4, php-mysql, php-fpm, 發佈wordpress是共享samba的wordpress目錄
d) www2,安裝httpd2.4, php-mysql, php-fpm, 發佈wordpress是共享samba的wordpress目錄
e) mariadb,安裝mariadb-5.5.46 通用二進制包,datadir是使用nfs共享的mysql_data
2、實驗環境:
1)服務器環境
Linux服務器操作系統版本:CentOS release 6.7 (Final)
dns) IP: 172.16.66.50
lamp) IP: 172.16.66.60
lamp) IP:172.16.66.70
nfs) IP:172.16.66.80
mariadb) IP: 172.16.66.90
2)測試環境
WIN7系統客戶機):IP:172.16.66.100
3、實驗前提:
1)關閉防火牆和SELinux
# service iptables stop
# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
# systemctl stop firewalld.service
4、實驗過程:
第一部分:
部署主機IP: 172.16.66.50
1. 安裝DNS服務器
1.1 安裝DNS服務端
# yum install bind -y
1.2 編輯主配置文件/etc/named.conf
options {
listen-on port 53 { 172.16.66.50; }; //監聽地址和端口
// allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
recursion yes; //是否允許遞歸
1.3 編輯/etc/named.rfc1912.zones
# sed -n '43,46p' /etc/named.rfc1912.zones //定義正向區域
zone "yang.com" IN {
type master;
file "yang.com.zone";
};
1.4 建立對應的區域解析庫文件(主要記錄爲A或AAAA記錄) 正向
# cat /var/named/yang.com.zone
$TTL 3600 //域名解析記錄在DNS服務器上緩存時間
@ IN SOA ns1.yang.com. dnsadmin.yang.com. (
20160721 //版本號
1D //刷新時間,同步時使用
10M //重試時間
3H //過期時間,定義解析緩存時間
2D ) //否定答案統一回應時間
IN NS ns1 //定義ns記錄,名稱服務器
ns1 IN A 172.16.66.50 //名稱服務器的A記錄
www IN A 172.16.66.60 //同一主機名指定不同的A記錄
www1 IN CNAME www
www IN A 172.16.66.70
www2 IN CNAME www //www2的別名設置爲www,及客戶端訪問www1同www
1.5 檢查配置文件是否有錯誤
# named-checkconf
1.6 檢查區域解析庫是否有錯誤
# named-checkzone yang.com /var/named/yang.com.zone
1.7 修改新建的區域解析庫文件屬組、屬主和權限
# chgrp named /var/named/yang.com.zone
# chmod o= /var/named/yang.com.zone
1.8 設置named開機啓動並啓動服務
# chkconfig named on
# service named start
# ss -ntl
2 測試dns
2.1 在主域機器上測試A記錄:
# dig -t A www.yang.com @172.16.66.50
第二部分:nfs+samba服務器
部署主機IP: 172.16.66.80
介紹;
nfs-->網絡文件系統
centos支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客服端應用可以透明地讀寫位於遠程NFS服務器上的文件,就想訪問本地文件一樣。
samba-->Server Messages Block 信息服務塊
SMB協議是客戶端/服務器型協議,客服機通過該協議可以訪問服務器上的共享文件系統,打印機系統及其它資源。
準備2塊磁盤,/dev/sdb/給NFS使用,/dev/sdc/給samba使用
1.準備工作,添加2塊新硬盤
1.1 顯示當前磁盤分區:
# fdisk -l
1.2 虛擬機開機狀態新加硬盤
1.3 確定主機總線號
# ls /sys/class/scsi_host/host/
host0 host1 host2
1.4 重新掃描SCSI總線來添加設備
# echo "- - -" > /sys/class/scsi_host/host2/scan
1.5 驗正是否添加成功
# ls /dev/sd*
2.安裝lvm2包
2.1 yum安裝lvm包
# yum install lvm2 -y
3.nfs設置--使用lvm,以方便mysql的數據目錄擴展
3.1 創建分區
# fdisk /dev/sdb
3.2 讓內核重讀
# partx -a /dev/sdb
3.3 創建物理卷
# pvcreate /dev/sdb1
3.4 創建卷組,並命名爲vg_mysql
# vgcreate vg_mysql /dev/sdb1
3.5 查看卷組
# vgs
vg_mysql 1 0 0 wz--n- 20.00g 20.00g
3.6 創建邏輯卷,並命名爲lv_mysql
# lvcreate -L 10G -n lv_mysql vg_mysql
3.7 查看邏輯卷
# lvs
lv_mysql vg_mysql -wi-a----- 10.00g
3.8 格式化lv_mysql
# mkfs -t ext4 /dev/vg_mysql/lv_mysql
3.9 查看lv_mysql的UUID
# blkid /dev/vg_mysql/lv_mysql
/dev/vg_mysql/lv_mysql: UUID="c31d279c-282c-4933-ac42-fd2b7ffbadb4" TYPE="ext4"
4.10 創建nfs使用的目錄
# mkdir /mysql_data
4.11 掛載文件/etc/fstab
# UUID=c31d279c-282c-4933-ac42-fd2b7ffbadb4 /mysql_data ext4 defaults 0 0
4.12 增加一條記錄到/etc/fstab
# mount -a
4.11 安裝nfs包
# yum install nfs-utils rpcbind
4.12 設置nfs的共享資源vim /etc/exports
/mysql_data 172.16.0.0/16(rw,sync,no_root_squash)
4.13 啓動nfs服務
# systemctl start rpcbind
# systemctl start nfs
查看nfs服務器的所有共享資源
# showmount -e
4.samba設置--使用lvm,以方便wordpress的數據目錄擴展
4.1 創建分區/dev/sdc
# fdisk /dev/sdc
4.2 讓內核重讀
# partx -a /dev/sdb
4.3 創建物理卷
# pvcreate /dev/sdc1
4.4 創建卷組,並命名爲vg_mysql
# vgcreate vg_wordpress /dev/sdc1
4.5 查看卷組
# vgs
vg_wordpress 1 0 0 wz--n- 10.00g 10.00g
4.6 創建邏輯卷,並命名爲lv_mysql
# lvcreate -L 8G -n lv_wordpress vg_wordpress
4.7 查看邏輯卷
# lvs
lv_wordpress vg_wordpress -wi-a----- 8.00g
4.8 格式化lv_mysql
# mkfs -t ext4 /dev/vg_wordpress/lv_wordpress
4.9 查看lv_mysql的UUID
# blkid /dev/vg_wordpress/lv_wordpress
/dev/vg_wordpress/lv_wordpress: UUID="772d5597-afcb-47fc-8e9f-d16e29f9aa96" TYPE="ext4"
5.10 創建samba要共享的目錄
# mkdir /wordpress
5.11 掛載文件/etc/fstab
UUID=772d5597-afcb-47fc-8e9f-d16e29f9aa96 /wordpress ext4 defaults 0 0
5.12 增加一條記錄到/etc/fstab
# mount -a
5.13 解壓縮wordpress包
# unzip wordpress-4.3.1-zh_CN.zip
5.14 拷貝wordpress 到 samba共享目錄中
# cp -r /tools/wordpress /wordpress/
5.15 安裝samba包
# yum install samba -y
5.16 編輯samba的配置文件vim /etc/samba/smb.conf 修改如下內容
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
interfaces = eno16777736 172.16.66.80/16
hosts allow = 172.16.66.70 172.16.66.60
security = user
passdb backend = tdbsam
[wordpress]
comment = web wordpress
path = /wordpress
guest ok = yes
public = yes
browseable = yes
5.17 創建samba系統用戶
# useradd -r wordpress
5.18 創建samba密碼
# smbpasswd -a wordpress
5.19 遠程ap測試
# smbclient //172.16.66.80/wordpress -U wordpress
5.17 將samba服務設置開機啓動
# systemctl enable smb
# systemctl enable nmb
5.20 設置用戶權限
# setfacl -m u:wordpress:rwx /wordpress/
5.21 設置組權限
# setfacl -m g:wordpress:rwx /wordpress/
第三部分:
部署mariadb主機IP: 172.16.66.90
0.配置nfs客服端
0.1 安裝nfskefd
# yum install rpcbind -y
0.2 加入開機自啓動
# systemctl enable rpcbind
0.3 查看nfs服務端掛載
# showmount -e 172.16.66.80
0.4 創建mysql數據目錄
# mkdir /mydata -p
0.5 測試掛載nfs服務端
# mount -t nfs 172.16.66.80:/mysql_data /mydata/
0.6 加入開機自動啓動腳本中vim /etc/rc.d/rc.local
mount -t nfs 172.16.66.80:/mysql_data /mydata/
1安裝和配置 Mariadb 數據庫服務
1.1 創建存放tools工具目錄
# mkdir /tools
1.2 解壓mariadb 到指定目錄
# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/
1.3 創建mysql數據目錄
# mkdir -pv /mydata
1.4 創建mysql系統組
# groupadd -r mysql
1.5 創建mysql系統用戶
# useradd -r -g mysql -s /sbin/nologin -M -d /mydata mysql
1.6 授權屬主屬組/mydata
# chown -R mysql.mysql /mydata
1.7 創建軟連接
# ln -sv mariadb-5.5.46-linux-x86_64 mysql
1.8 授權mysql安裝包目錄
# chown -R root.mysql ./
1.9 初始化數據庫mariadb
# scripts/mysql_install_db --user=mysql --datadir=/mydata
1.10 創建mysql配置文件目錄
# mkdir /etc/mysql
1.11 拷貝配置文件到指定目錄
# cp support-files/my-large.cnf /etc/mysql/my.cnf
1.12 修改配置文件/ect/mysql/my.cnf 在server中添加下面三行
datadir = /mydata
innodb_file_per_table = ON
skip_name_resolve = ON
1.13 添加mysqld服務到開機自啓動
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
1.14 爲mysqld執行權限
# chmod +x /etc/rc.d/init.d/mysqld
1.14 添加到服務列表
# chkconfig --add mysqld
1.14 添加到開機自動啓動
# chkconfig on
1.15 重命名/etc/my.cnf 爲 my.cnf.bak
# mv my.cnf my.cnf.bak
1.16 添加mysql環境變量/etc/profile.d/myslqd.sh 下
export PATH=/usr/local/mysql/bin:/usr/local/mysql/support-files:$PATH
1.17 使其mysqld環境變量生效
# source /etc/profile.d/mysqld.sh
1.18 導入mysqld頭文件到usr頭文件中
# ln -sv /usr/local/mysql/include /usr/include/mysqld
1.19 啓動mysqld服務
# mysql.server start
1.20 以查看內存佔用情況
# top -u mysql
2.使用 MariaDB 內建的安全配置腳本進行配置
2.1 執行安全配置腳本進行配置
# mysql_secure_installation
2.2 輸入密碼後回車,下面是輸出示例,可以看到命令提示符變爲 MariaDB [(none)]>
# mysql -u root -p
2.3創建一個新數據庫給 WordPress 用(這裏取名爲 wordpress,也可以用別的名字)
MariaDB [(none)]> create database wordpress;
2.4創建一個新用戶,並將該數據庫的權限賦給他(這裏只是舉例,用戶名爲 admin,密碼爲 admin)
MariaDB [(none)]> grant all on wordpress.* to 'admin'@'172.16.%.%' identified by 'admin';
2.5更新權限
MariaDB [(none)]> flush privileges;
2.6退出數據庫
MariaDB [(none)]> quit
2.7 創建配置文件備份目錄
# mkdir ~/confbak
2.7 備份配置文件
#cp /etc/my.cnf ~/confbak/my.cnf.bak
第四部分
部署ap主機IP: 172.16.66.60
0 基本設置
0.1 設置 httpd 主機名 HOSTNAME
echo "HOSTNAME=www1" >> /etc/sysconfig/network
0.2 添加DNS 配置文件 /etc/resolv.conf
servicename 172.16.66.50
1.yum包安裝ap
1.1 安裝軟件包
# yum install httpd php-fpm php-mysql -y
1.2 檢查是否成功安裝包
# rpm -qa httpd php-fpm php-mysql
1.3 啓動服務
# systemctl start httpd
# systemctl start php-fpm
1.4 查看服務是否正常啓動
# ss -nlt
# ps aux | grep httpd
# ps aux | grep php-fpm
1.5 設置開機自動啓動
# systemctl enable httpd
# systemctl enable php-fpm
1.6 檢查是否設置成開機自啓動
# systemctl is-enabled httpd
# systemctl is-enabled php-fpm
2.配置虛擬主機
2.1 虛擬主機配置文件www1
# vim /etc/httpd/conf.d/www1.conf
<VirtualHost 172.16.66.60:80>
Servername www1
#ServerAlias www
DocumentRoot /var/www/html
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
ErrorLog logs/www1-error_log
CustomLog logs/www1-access_log combiend
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
2.2 臨時掛載遠程samba網站目錄
# mount -t cifs //172.16.66.80/wordpress /var/www/html -o username=wordpress,password=liyang
2.3 掛載添加到本機開機啓動腳本中/etc/rc.d/rc.local
mount -t cifs //172.16.66.80/wordpress /var/www/html -o username=wordpress,password=liyang
第五部分
部署ap主機IP: 172.16.66.70
0 基本設置
0.1 設置 httpd 主機名 HOSTNAME
echo "HOSTNAME=www2" >> /etc/sysconfig/network
0.2 添加DNS 配置文件 /etc/resolv.conf
servicename 172.16.66.50
1.yum包安裝ap
1.1 安裝軟件包
# yum install httpd php-fpm php-mysql -y
1.2 檢查是否成功安裝包
# rpm -qa httpd php-fpm php-mysql
1.3 啓動服務
# systemctl start httpd
# systemctl start php-fpm
1.4 查看服務是否正常啓動
# ss -nlt
# ps aux | grep httpd
# ps aux | grep php-fpm
1.5 設置開機自動啓動
# systemctl enable httpd
# systemctl enable php-fpm
1.6 檢查是否設置成開機自啓動
# systemctl is-enabled httpd
# systemctl is-enabled php-fpm
2.配置虛擬主機
2.1 虛擬主機配置文件www1
vim /etc/httpd/conf.d/www2.conf
<VirtualHost 172.16.66.70:80>
Servername www2
#ServerAlias www
DocumentRoot /var/www/html
ProxyRequests Off
DirectoryIndex index.php
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
ErrorLog logs/www2-error_log
CustomLog logs/www2-access_log combiend
<Directory "/var/www/htm2">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
2.2 臨時測試掛載遠程samba網站目錄
# mount -t cifs //172.16.66.80/wordpress /var/www/html -o username=wordpress,password=liyang
2.3 掛載添加到本機開機啓動腳本中/etc/rc.d/rc.local
mount -t cifs //172.16.66.80/wordpress /var/www/html -o username=wordpress,password=liyang
第六部分
1.測試www1和www2是否能夠正常解析www.yang.com,有1個服務器出現問題,另一個服務器還可以正常工作!
1.1 停掉www1服務器(172.16.66.60)的httpd服務
http://www.yang.com 可以正常訪問
1.2 停掉www2服務器(172.16.66.70)的httpd服務
http://www.yang.com 可以正常訪問
--------------------------------------------------------------------------------------------
擴展知識:
samba 權限:
首先需要提醒大家注意的是,samba的權限由兩方面構成:一是目錄本身的權限,二是samba的配置權限。最終權限定義是兩者的最小交集。
OK,我們接着來理解這三種權限:
一個文件都有一個所有者,表示該文件是誰創建的。
同時,該文件還有一個組編號,表示該文件所屬的組,一般爲文件所有者所屬的組。
如果是一個可執行文件,那麼在執行時,一般該文件只擁有調用該文件的用戶具有的權限。
權限標誌通過三個“位”來定義,分別是:
setuid:設置使文件在執行階段具有文件所有者的權限。比如/usr/bin/passwd,如果一般用戶執行該文件,則在執行過程中,該文件可以獲得root權限,從而可以更改用戶的密碼。
setgid:該權限只對目錄有效。目錄被設置該位後,任何用戶在此目錄下創建的文件都具有和該目錄所屬的組相同的組。
sticky bit:該位可以理解爲防刪除位。 一個文件是否可以被某用戶刪除,主要取決於該文件所屬的組是否對該用戶具有寫權限。如果沒有寫權限,則這個目錄下的所有文件都不能被刪除,同時也不能添加新的文件。 如果希望用戶能夠添加文件但同時不能刪除文件,則可以對文件使用sticky bit位。設置該位後,就算用戶對目錄具有寫權限也不能刪除該文件。
三個權限的特點
Sticky(範例:/tmp目錄)
①sticky只能應用在目錄上,並且是應用在其它人上。
②只有root和文件的擁有人才能刪除該文件。
③小寫表示能執行,大寫表示不能執行
Suid(範例:/usr/bin/passwd目錄)
①suid只能應用在二進制文件中
②當一個文件應用了suid,那麼任何人在執行該命令的時候他就臨時擁有該文件擁有人的權限
③suid只能應用在文件的擁有人上
④小寫表示能執行,大寫表示不能執行
Sgid(應用環境爲用於一組開發人員共用資源,保證安全)
①sgid既可以應用在文件上,也可以應用在目錄上
②當sgid應用在目錄上時,任何人在該目錄中建立健全的文件和目錄的擁有者屬於目錄所屬組
③應用在擁有組上
④sgid應用在文件上時,任何人在執行該文件時,臨時擁有該文件所屬組權限
⑤小寫表示可執行,大寫反之。
如何操作這些標誌
操作這些標誌與操作文件權限的命令是一樣的, 都是 chmod。有兩種方法來操作:
① chmod u+s temp -- 爲temp文件加上setuid標誌。 (setuid 只對文件有效)
chmod g+s tempdir -- 爲tempdir目錄加上setgid標誌 (setgid 對目錄和文件有效)
chmod o+t temp -- 爲temp文件加上sticky標誌 (sticky只對文件有效)
② 採用八進制方式。對一般文件通過三組八進制數字來置標誌,如 666,777,644等。如果設置這些特殊標誌,則在這組數字之外外加一組八進制數字,如4666,2777等。這一組八進制數字三位的意義如下,
abc
a - setuid位。如果該位爲1,則表示設置setuid
b - setgid位。如果該位爲1,則表示設置setgid
c - sticky位。如果該位爲1,則表示設置sticky
我習慣用第一種方法來做,但許多時候文件的權限表示都是用數字爲執行;所以,建議兩種方法都要掌握熟悉。
設置完這些標誌後, 可以用 ls -l 來查看。 如果有這些標誌,則會在原來的執行標誌位置上顯示。 如
rwsrw-r-- 表示有setuid標誌
rwxrwsrw- 表示有setgid標誌
rwxrw-rwt 表示有sticky標誌
那麼原來的執行標誌x到哪裏去了呢?系統是這樣規定的,如果本來在該位上有x,則這些特殊標誌顯示爲小寫字母 (s, s, t)。否則, 顯示爲大寫字母 (S, S, T)
這三個權限的數字位可以這麼理解,這是我的理解和記憶參考法,僅供大家參考學習
[root@server3 test]# 1 1 1
[root@server3 test]# rws rws rwt
[root@server3 test]#
[root@server3 test]# SUID SGID Sticky
所以,可以得出
chmod 4777是設sid
chmod 2777是設置gid
chmod 1777是設sticky
最後,介紹兩個常用操作。
常用操作
找出所有危險的目錄(設置目錄所有人可讀寫卻沒有設置sticky位的目錄)
find / -perm -0007 -type d
找出所有設置了suid的文件
find / -perm -4000 -type f
找出所有設置了sgid的文件
find / -perm -2000 -type d
lamp+nfs+Samba實現wordpress博客
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Samba服務器筆記
羽化飛仙
2019-02-23 13:31:17
centos7搭建nfs服務器與客戶端連接
carooly
2019-02-24 13:26:22
nfs 共享搭建LAMP
mandb
2019-02-23 13:38:23
drbd+heartbeat+nfs
hua5819233
2019-02-23 13:02:47
Xenserver 5.0雙機共享NFS存儲實踐-----轉自網絡
woaizca
2019-02-23 12:52:46
實現web數據同步的四種方式
jie783213507
2019-02-23 00:21:41
LAMP開發入門二 —— 環境搭建
princewell
2019-02-23 13:29:59
源碼編譯安裝LAMP
coolner
2019-02-23 00:39:39
nginx+apache+mysql+php+memcached+squid
yinyue0317
2019-02-23 00:26:13
LAMP搭建
mb5b8f562c04a80
2019-02-23 00:12:41
LNAMP 1.0 一鍵安裝包(CentOS 6.2下測試通過,懶人專用)
ankangchen
2019-02-23 00:07:30
linux下php5.4安裝Zend Guard Loader擴展
304076020
2019-02-23 00:03:19
linux下tomcat安裝
304076020
2019-02-23 00:03:19