实验基于redhat 5.8,apache2.2,php53,Mysql5.0,且用rpm安装。如下图所示
<a href="http://blog.51cto.com/attachment/201207/201611851.jpg" target="_blank"></a>
一,在172.16.150.21服务器安装好DNS,且DNS的的正向解析与反向解析的添加两条www,只是IP地址不一样。这要做的作用是,当第一个客户端请求来了,则开始第一台web去响应,第二个客户端请求来了,则第二台web去向去响应,以达到负载均衡的作用。
$TTL 600
$ORIGIN bingo.com.
@ IN SOA ns.bingo.com. admin.bingo.com. (
0 ; serial
1H ; refresh
2H ; retry
1H ; expire
3H ) ; minimum
IN NS ns.bingo.com.
IN MX 10 mail.bingo.com.
ns IN A 172.16.150.21
www IN A 172.16.150.20
www IN A 172.16.150.21
二,在两台web服务器上yum -y insall httpd php53 php53-mbstring php53-mysql mysql,并将对应的服务启动。
三,在数据库服务器上yum -y insall mysql mysql-server,并启动服务
四,172.16.150.20的web上配置好/etc/httpd/conf/httpd.conf,注释DocumentRoot,这一行,启用NameVirtualHost,并配置好一个虚拟主机,如下图
<VirtualHost *:80>
DocumentRoot /web/vhost/www
ServerName www.bingo.com
<Directory "/web/vhost/www" >
options none
AllowOverride none
order deny,allow
allow from all
</Directory>
</VirtualHost>
五,下载 Discuz_7.2_FULL_SC_GBK.zip,解压到Discuz的解压到数据服务器中的/web/www下,通过NFS的方式将/web/www/目录共享出来,
/web/www 172.16.0.0/16(rw,no_root_squash)
并启动NFS服务。
六,172.16.150.20上挂载此目录,mount -t nfs 172.16.150.22:/web/www /web/vhost/www(为什么要挂载这个目录,因为定义虚拟主机时已经定义好了)
七,上面步骤如果有出错的请关闭Selinux。此时将window上hosts文件添加一行172.16.150.20 www.bingo.com,也可以客户机DNS的IP指定虚拟机的IP。在浏览器中输入www.bingo.com/install开始安装Discuz。其中会提示无法远程连接到mysql,此时需要在mysql上执行远程授权,并需要创建数据库discuz。
grant all privileges on *.* to root@'%' identified by 'redhat';
create datebase discuz;
grant all privileges on discuz.* to root@'%' identified by 'redhat';
FLUSH privileges;
八,如果安装时出现乱码,则将/etc/httpd/conf/httpd.conf中的UTF-8其中一行注释,并重启服务。安装时提示需要将/web/vhost/www下文件需要写权限,则根据提示将相对应的文件修改,让apache用户有修改权限,为什么要apache,因为运行httpd进程的这个用户是apache,在httpd.conf里已经定义好了。
九,安装完之后,在浏览器中中访问www.bingo.com,如果出现图片无法显示,则将/etc/php.ini中的short_open_tag值修改成on。
十,将web配置好的配置文件/etc/httpd/conf/httpd.conf和/etc/php.ini复制到172.16.150.21上,并注意两个文件的属主与属组。并挂载mount -t nfs 172.16.150.22:/web/www /web/vhost/www。并重启服务,并测试。
十一,在浏览器先用172.16.150.20,访问论谈,并注册账号上传图片。退出账号,用172.16.150.21访问论谈,登录论谈看是否能刚才所发的图片。如果OK,apache与mysql分别安装在不同的服务器的已经成功,当然此种方法不是最好的解决办法,毕竟会给mysql数据服务器造成比较大的压力
本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/931921,如需转载请自行联系原作者