实验基于redhat 5.8,apache2.2,php53,Mysql5.0,且用rpm安装。如下图所示
一,在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数据服务 器造成比较大的压力