设为首页 收藏本站
查看: 1664|回复: 0

LAMP+NFS+DNS搭建wordpress

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-12-7 16:13:26 | 显示全部楼层 |阅读模式
架构简介:
这里其实就是使用的LAMP+NFS组合,将结构化数据存储在mysql数据库服务器中(例如论坛用户数据,文字内容等等),非结构化数据(例如附件数据,多媒体文件)存储在NFS服务器上的文件系统中;其具体架构为:2台web服务器,1台NFS服务器,1台mysql服务器,1台DNS服务器;如下图所示
watermark,size_15,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=.jpg
web服务器1:172.16.20.241,CentOS6
web服务器2:172.16.20.242,CentOS6
DNS服务器:172.16.20.244,CentOS6
mysql服务器:172.16.20.243,CentOS7
NFS服务器:172.16.20.245,CentOS7
具体配置:
1、NFS服务器配置,172.16.20.245:
[iyunv@localhost ~]# yum install  nfs-utils -y
[iyunv@localhost ~]# systemctl start nfs
[iyunv@localhost ~]# systemctl start rpcbind
[iyunv@localhost ~]# mkdir /web          // 创建一个目录用于存放wordpress并导出
[iyunv@localhost ~]# unzip wordpress-4.7.4-zh_CN.zip
[iyunv@localhost ~]# cp -r wordpress
[iyunv@localhost ~]# vim /etc/exports
/web/wordpress    172.16.20.241(rw,no_root_squash) 172.16.20.242(rw,no_root_squash)    // 导出wordpress目录,并设置root用户允许访问,因为必须要以root用户的身份运行,才能安装wordpress
[iyunv@localhost ~]# chown -R :apache /web/wordpress      // 由于wordpress用于httpd服务,因此apache用户需要有此目录的读写权限
[iyunv@localhost ~]# chmod -R g+rw /web/wordpress
[iyunv@localhost ~]# systemctl restart nfs        // 重启服务使exports导出的目录生效
[iyunv@localhost ~]# showmount -e 172.16.20.245    //  使用此命令可以查看目标主机已导出的目录
Export list for 172.16.20.245:
/web/wordpress 172.16.20.242,172.16.20.241
[iyunv@localhost ~]#

2、mysql服务器配置,172.16.20.243:

[iyunv@localhost ~]# yum install mysql-server -y  //这里使用rpm包简易安装,更专业的做法是使用二进制格式安装,将mysql数据存放到一个单独的磁盘中,便于管理和容灾
[iyunv@localhost ~]# mysql
mysql> create database web;     //创建wordpress用的数据库
Query OK, 1 row affected (0.00 sec)

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> grant all privileges on web.* to 'user1'@'%' identified by 'redhat';     //给web数据库授权一个专用用户user1并设置密码,这里可能会有人想,直接用root用户就行了;但是这样是不安全的,而且rpm包安装的mysql默认是禁止root用户远程登录,并且直接以root用户登陆数据库也非常的不安全
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;    //手动刷新权限表,使新作出的更改立即生效
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+-----------------------+-------+-------------------------------------------+
| host                  | user  | password                                  |
+-----------------------+-------+-------------------------------------------+
| localhost              | root  |                                           |
| localhost.localdomain | root  |                                           |
| 127.0.0.1             | root  |                                           |
| localhost             |       |                                           |
| localhost.localdomain |       |                                           |
| %                     | user1 | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |
+-----------------------+-------+-------------------------------------------+
6 rows in set (0.00 sec)
// 这里可以看出我们新建的user1用户已经生效了
mysql>

3、DNS服务器配置,172.16.20.244:

[iyunv@localhost ~]# yum install bind -y
[iyunv@localhost ~]# vim /etc/named.ca
修改以下选项
listen-on port 53 { 172.16.20.244; 127.0.0.1; };
allow-query { any; };
dnssec-enable no;
dessec-validation no;
[iyunv@localhost ~]# vim /etc/named.rfc1912.zones
添加如下行
zone "gumpti.com" IN {
              type master;
                            file "gumpti.com.zone";
};
//  添加一个主区域
[iyunv@localhost ~]# vim /var/named/gumpti.com.zone
$TTL 1D
$ORIGIN gumpti.com.
@             IN              SOA             ns1.gumpti.com.     admin.gumpti.com   (
                                                                                                          2017120201
                                                                                                            1M
                                                                                                            5M
                                                                                                            7D
                                                                                                            1D )
                                 IN              NS               ns1.gumpti.com.
                                 IN              NS               www.gumpti.com.
ns1           IN              A                  172.16.20.244
www         IN              A                  172.16.20.241
www         IN              A                  172.16.20.242
[iyunv@localhost ~]# service named start
[iyunv@localhost ~]# dig -t A www.gumpti.com @172.16.20.244         //查看A记录是否生效

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> -t A www.gumpti.com @172.16.20.244
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 215
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.gumpti.com.            IN    A

;; ANSWER SECTION:
www.gumpti.com.        86400    IN    A    172.16.20.241
www.gumpti.com.        86400    IN    A    172.16.20.242

;; AUTHORITY SECTION:
gumpti.com.        86400    IN    NS    www.gumpti.com.
gumpti.com.        86400    IN    NS    ns1.gumpti.com.

;; ADDITIONAL SECTION:
ns1.gumpti.com.        86400    IN    A    172.16.20.244

;; Query time: 24 msec
;; SERVER: 172.16.20.244#53(172.16.20.244)
;; WHEN: Wed Dec 06 15:11:42 CST 2017
;; MSG SIZE  rcvd: 123

// 再执行一次dig命令查看两条A记录的轮询效果是否生效
[iyunv@localhost ~]# dig -t A www.gumpti.com @172.16.20.244

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> -t A www.gumpti.com @172.16.20.244
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27457
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.gumpti.com.            IN    A

;; ANSWER SECTION:
www.gumpti.com.        86400    IN    A    172.16.20.242
www.gumpti.com.        86400    IN    A    172.16.20.241

;; AUTHORITY SECTION:
gumpti.com.        86400    IN    NS    ns1.gumpti.com.
gumpti.com.        86400    IN    NS    www.gumpti.com.

;; ADDITIONAL SECTION:
ns1.gumpti.com.        86400    IN    A    172.16.20.244

;; Query time: 0 msec
;; SERVER: 172.16.20.244#53(172.16.20.244)
;; WHEN: Wed Dec 06 15:13:24 CST 2017
;; MSG SIZE  rcvd: 123

[iyunv@localhost ~]#

4、配置WEB服务器1,172.16.20.241:

[iyunv@localhost ~]# showmount -e 172.16.20.245
Export list for 172.16.20.245:
/web/wordpress 172.16.20.242,172.16.20.241
[iyunv@localhost /]# mkdir /www/wordpress -pv
[iyunv@localhost ~]# mount -t nfs 172.16.20.245:/web/wordpress /www/wordpress/  
//  挂载NFS服务器172.16.20.245导出的/web/wordpress到本地的/www/wordpress目录
[iyunv@localhost ~]# yum install httpd php php-mysql -y
[iyunv@localhost ~]# vim /etc/httpd/conf/httpd.conf
修改如下行
DocumentRoot "/www/wordpress/"
<Directory "/www/wordpress/">
[iyunv@localhost ~]# cp /www/wordpress/wp-config-sample.php /www/wordpress/wp-config.php
[iyunv@localhost ~]# vim /www/wordpress/wp-config.php
// 修改wordpress的配置文件
define('DB_NAME', 'web');     // 指定wordpress使用的数据库为web数据库
define('DB_USER', 'user1');   // 指定wordpress使用的连接数据库的用户为user1
define('DB_PASSWORD', 'redhat');   // 指定wordpress使用的用户user1的密码
define('DB_HOST', '172.16.20.243');   // 指定wordpress使用的数据库的服务器IP
[iyunv@localhost ~]# service httpd start

5、配置WEB服务器2,172.16.20.242:

[iyunv@localhost ~]# showmount -e 172.16.20.245
Export list for 172.16.20.245:
/web/wordpress 172.16.20.242,172.16.20.241
[iyunv@localhost /]# mkdir /www/wordpress -pv
[iyunv@localhost ~]# mount -t nfs 172.16.20.245:/web/wordpress /www/wordpress/  
//  挂载NFS服务器172.16.20.245导出的/web/wordpress到本地的/www/wordpress目录
[iyunv@localhost ~]# yum install httpd php php-mysql -y
[iyunv@localhost ~]# vim /etc/httpd/conf/httpd.conf
修改如下行
DocumentRoot "/www/wordpress/"
<Directory "/www/wordpress/">
[iyunv@localhost ~]# service httpd start
// 已经在WEB1上修改过wordpress的配置文件,这里WEB1和WEB2都是挂载的NFS服务器上的wordpress目录,使用的同一份wordpress文件

6、查看配置效果
将客户端主机的DNS服务器设置为172.16.20.244
然后在浏览器中输入地址www.gumpti.com
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=.jpg
成功显示wordpress界面,会提示需要安装,安装并注册一个管理员账号,然后进入管理界面(实验中我注册的管理员账号为181)
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=.jpg
点击“用户”按钮,添加一个用户(实验中我添加的是157)
然后发布几篇文章
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=.jpg
保存后登陆另一台服务器172.16.20.242就可以查看到wordpress页面中有181用户发布的文章
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=.jpg
也可以使用新添加的用户157登陆,也可以看到文章的发布
以上在WEB1上安装了wordpress并发布了文章,通过WEB2可以成功访问并看到相同的内容,并且可以使用不同的账号在WEB2中登陆,说明实验已经成功。
总结
LAMP+NFS的架构比较简单,但在实际生产环境中使用的并不多,更实用的是分布式文件系统而不是NFS,NFS性能有限,只是在小公司在过渡期中使用。
此次实验做的比较匆忙:
1、关于NFS导出的wordpress权限问题并没有做太多的研究
2、在WEB2中登陆后,网页地址依旧会跳转到WEB1,这里是还没有考究出原因,需要继续学习
3、DNS也只配置了正向解析域,没有配置反向解析域
后续再来继续填坑。
写的比较潦草,如有遗漏错误和争议之处,欢迎大家的批评指正和讨论,谢谢。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421819-1-1.html 上篇帖子: LAMP的rpm包安装与简单测试 下篇帖子: LNMP (nginx网站服务)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表