实验环境:Vmware虚拟机,各主机的作用和IP地址为:

DNS:192.168.1.138

HTTPD1:192.168.1.132

HTTPD2:192.168.1.134

DATABASE:192.168.1.137

NFS:192.168.1.129

实验步骤:

一、准备DNS服务器(192.168.1.138):

# yum -y install bind
# vim /etc/named.conf

wKiom1PwIvbS5tyKAAIAHvSJa2M509.jpg

# named-checkconf;修改主配置后,检查配置文件语法错误

添加正向反向解析区域,添加内容如下:

# vim /etc/named.rfc1912.zones

wKioL1PwKNDinzQMAACB6XA9nNQ008.jpgwKiom1PwJoHgd7ShAACOM3NoArM394.jpg

# named-checkconf;检查配置文件语法错误
# cd /var/named

添加正向区域解析文件,内容如下:

# vim sueking.com.zone

wKiom1PwLD_BxOn9AAD9-nmaF-s049.jpg

# chmod 640 sueking.com.zone;修改区域文件属性
# chgrp named sueking.com.zone;修改区域文件属组
# named-checkzone "sueking.com" /var/named/sueking.com.zone;检查正向区域文件的语法错误

添加反向区域解析文件,内容如下:

# vim 192.168.1.zone

wKiom1PwLW6wgl4ZAADMqMbuPuo126.jpg

# chmod 640 192.168.1.zone
# chgrp named 192.168.1.zone
# named-checkzone "1.168.192.in-addr.arpa" /var/named/192.168.1.zone
# service named start;启动named服务

查看服务启动结果,其中udp,tcp协议的53号端口都处于监听状态。如下图:

# ss -tunl

wKiom1PwL4agWTV8AAHcvRJa_o0392.jpg

使用host工具测试DNS服务器解析bbs.sueking.com的结果,如下图:

# host -t A bbs.sueking.com 192.168.1.138

wKiom1PwMFmQaBfWAAD5xiQAI9I279.jpg

另外我们可以使用dig命令测试一下轮询的效果,使用这条命令重复几次,可以看到dns服务器解析的效果中两个主机的IP地址上下位置在发生变化,即dns解析时会将不同的解析发送到不同的主机上。

# dig -t A bbs.sueking.com @192.168.1.138

wKioL1PwXyvgrTMBAAHGr0evYg4670.jpgwKiom1PwXjDzWSqSAAITKeEgSGo038.jpg

二、准备一台nfs服务器(192.168.1.129)

# mkdir /shared/nfs;准备共享给两台apache服务器的共享文件目录
# setfacl -m u:apache:rwx /shared/nfs
# unzip Discuz_X2.5_SC_GBK.zip;解压discuz软件的安装文件,解压出来会生成upload,utility和readme三个目录,其中upload用于论坛的安装。
# cp upload /shared/nfs
# cd /shared/nfs
# mv upload bbs
# cd bbs
# chmod -R 777 config data uc_client uc_server;将这四个目录的属性调整为777,以便安装discuz时检查条件可以通过。

添加要导出的共享目录给两台apache服务器,内容如下:

# vim /etc/exports

wKioL1PwNPDSK47PAACjtf_Xnlc889.jpg



# service nfs start;启动nfs服务。

三、准备两台apache服务器,使用CentOS 6.5系统上默认安装的httpd-2.2的版本,同时安装上php。

# yum install php
# yum install php-mysql

将nfs服务器共享的nfs分区挂载至本地文件系统,挂载选项要加上_netdev,避免nfs未启动的情况下,apache服务器不能正常启动。

# showmount -e 192.168.1.129

wKiom1PwNNjx27rSAACWvP1KLIg193.jpg

# vim /etc/fstab

wKiom1PwNQ7gj6muAAG7L9nPqaI847.jpg

修改httpd配置文件/etc/httpd/conf/httpd.conf,注释掉中心主机,添加php页面文件的支持

wKiom1PwN3DRSkDHAACnd5qCdCg387.jpgwKioL1PwOLaSBx4EAACqpnpLGNU499.jpg

添加虚拟主机的定义,内容如下:

wKiom1PwQbeiEJVmAAB18-Gfa-M422.jpg

注意:将默认的字符集由UTF-8调整为SC_GBK,这样在安装discuz过程中不会有乱码。

wKiom1PwQmzRZHkJAACDq0wOxZU631.jpg

# service httpd restart

四、准备一台数据库服务器

1、创建一个逻辑卷,将该逻辑卷挂载至/mydata目录,同时创建/mydata/data目录用于存放数据库数据。

2、新建用于运行mysql数据库的用户和组

# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin mysql
# chown -R mysql:mysql /mydata/data

3、安装并初始化mariadb-5.5.39

# tar xf  mariadb-5.5.39-linux-x86_64.tar.gz -C /usr/local
# cd /usr/local
# ln -sv mariadb-5.5.39-linux-x86_64 mysql
# cd mysql
# chown -R mysql:mysql ./
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root ./

4、为mariadb提供主配置文件:

# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf

编辑主配置文件,添加数据库数据存放目录路径,如下图:

# vim /etc/my.cnf

wKioL1PwRq3wJAD7AAGn6j8IGuQ962.jpg

5、为mariadb提供服务脚本:

# cd /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on

6、导出mariadb的man手册:

# vim /etc/man.config

wKioL1PwR0zxSfBGAACsSpHUFmY792.jpg

7、输出库文件给系统库:

# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig


8、导出头文件:

# ln -sv /usr/local/mysql/include /usr/include/mysql

9、修改PATH环境变量:

# vim /etc/profile.d/mysql.sh

wKioL1PwSAjzOsztAAA2W7-WW6g582.jpg

10、连接数据库,为将要安装的discuz软件创建连接数据库的用户,并创建数据库,将新创建的数据库授权给该用户。

> CREATE DATABASE bbs;
> CREATE USER tuser@'192.168.1.%' IDENTIFIED BY 'tpass';
> GRANT ALL PRIVILEGES ON bbs.* TO tuser@'%';允许tuser用户在任何主机上登录,可以做进一步限定。
> FLUSH PRIVILEGES;使授权生效。

注:有很多时候,使用远程的方式连接数据库会非常缓慢,这也是由于解析主机名造成的,编辑数据库的配置文件/etc/my.cnf添加skip-name-resolve,可以解决这个问题。

wKiom1PwScTwihRjAACLmCg2U1I710.jpg

五、安装discuz

在浏览器内输入:192.168.1.132/bbs

wKiom1PwS3mDMV8IAASID6qua-o731.jpgwKioL1PwTLzQZZGDAAGZeLXnBPw106.jpg

wKiom1PwS8STydOTAAHiMwXOJg8202.jpg

注意安装文件的目录下有四个文件夹的属性需要调整为777才能安装,分别是config,data,uc_client,uc_servre,有时候还会遇到mysql_connect()函数检查不通过的情况,一般是没有安装php-mysql包造成的。

wKioL1PwTWLw2KVqAAHL5_BHRO0176.jpg

填写远程数据库的IP地址及相关数据库信息,点击下一步开始安装:

wKiom1PwTICCi7L-AAKLcxFoegE047.jpg

discuz论坛程序安装完成。输入管理员账号密码可以登录管理中心:

wKioL1PwTgnj1pY2AAHnxp2r5g4446.jpg

登录管理中心的时候会提示删除安装目录下的index.php文件,按照提示删除该文件:

wKiom1PwTWKAit_1AAIp2CuFz5w505.jpg

使用IP地址登录2台apache服务器,测试发帖,及上传附件,先登录到192.168.1.132:

wKiom1PwUaCDlZptAAKdSV3OlIs389.jpg

再登录192.168.1.134测试:

wKiom1PwUfDACR0UAAK3zcvSyLQ709.jpg

都可以看到相同的附件内容,然后将两个apache服务器中对于的虚拟主机的DocumentRoot都改变为/var/www/html/bbs,并重启服务,这样修改是为了可以在浏览器内直接输入FQDN名称来访问。

wKiom1PwVI6zwaoNAACHJn0Lw04093.jpg

然后使用装有虚拟主机的XP系统测试,XP系统的DNS服务器指向192.168.1.138,如图:

wKioL1PwVgPjB1nRAAN1Um7XWoI495.jpg

在cmd命令提示符下测试域名解析的结果:

wKioL1PwVlSBGolFAAJ_mGPgngI820.jpg

在浏览器内访问bbs.sueking.com:

wKioL1PwVreS6oiWAAMbPDextr0827.jpg

可以看到之前发过的贴子及附件内容,discuz论坛程序安装测试完毕。