实验环境: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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

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

# vim /etc/named.rfc1912.zones

双apache + nfs + mariadb 实现安装discuz论坛程序双apache + nfs + mariadb 实现安装discuz论坛程序

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

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

# vim sueking.com.zone

双apache + nfs + mariadb 实现安装discuz论坛程序

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

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

# vim 192.168.1.zone

双apache + nfs + mariadb 实现安装discuz论坛程序

# 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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

# host -t A bbs.sueking.com 192.168.1.138

双apache + nfs + mariadb 实现安装discuz论坛程序

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

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

双apache + nfs + mariadb 实现安装discuz论坛程序双apache + nfs + mariadb 实现安装discuz论坛程序

二、准备一台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

双apache + nfs + mariadb 实现安装discuz论坛程序



# 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

双apache + nfs + mariadb 实现安装discuz论坛程序

# vim /etc/fstab

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

# 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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

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

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

双apache + nfs + mariadb 实现安装discuz论坛程序

五、安装discuz

在浏览器内输入:192.168.1.132/bbs

双apache + nfs + mariadb 实现安装discuz论坛程序双apache + nfs + mariadb 实现安装discuz论坛程序

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

再登录192.168.1.134测试:

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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

双apache + nfs + mariadb 实现安装discuz论坛程序

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