1、实验目的php
本实验主要经过nfs解决多台web服务器负载均衡的问题和数据同步的问题。mysql
2、实验环境:web
如上拓扑图所示,在server1上安装有mysql数据库,server2和server3经过nfs共享server1上的mysql数据库,同时,将discuz网站的源码放在server1上,即:server1只运行mysql,而server2和server3只运行php和apache。这样能够保证用户无论访问server2或者server3均可以获得相同的结果。sql
3、实验步骤数据库
一、server1的配置apache
(1)首先在server1上安装mysql(在此以绿色版为例,具体步骤请参照博文LAMP的编译安装),在此再也不赘述。vim
(2)利用nfs将mysql的解压后的文件和discuz共享出去。浏览器
点击(此处)折叠或打开服务器
#yum -y install nfs-utils负载均衡
#service portmap start #vim /etc/exports (在此文件中添加以下内容)
/usr/local/mysql 172.16.66.1(rw)
/usr/local/mysql 172.16.77.1(rw) #exportfs -arv 将discuz共享出去,同理须要编辑/etc/exports文件 #vim /etc/exports 在此文件中添加以下内容:
/web 172.16.66.1(rw) /web 172.16.77.1(rw) /注意要事先将discuz的文件放在/web目录中。
#exportfs -arv
二、server2的配置
(1)安装apache-2.4.2,具体步骤请参照博文LAMP的编译安装。
(2)将server1共享的文件挂载至本机。
点击(此处)折叠或打开
#mkdir /mysql(将server1的mysql文件挂载至此目录中)
#mkdir /web(将server1中的discuz挂载至此目录中)
#vim /etc/fstab 在此文件中添加以下内容: 172.16.58.1:/usr/local/mysql /mysql nfs default 0 0 172.16.58.1:/web /web nfs default 0 0
#mount -a
(3)编译安装php。注意php指定的--with-mysql与--with-mysqli的路径。
点击(此处)折叠或打开
# tar xf php-5.4.4.tar.bz2
# cd php-5.3.14
# ./configure --prefix=/usr/local/php --with-mysql=/mysql --with-openssl --with-mysqli=/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
# make
# make test
# make intall
三、server3配置
server3的配置和server2的配置同样,在此不赘述。
4、实验结果及验证
一、在浏览器中输入172.16.66.1/install(注意第一次必定要这样输入),出现以下页面:
二、进入下一步进入以下页面:
注意以上页面是执行如下命令获得的结果,在server1上作以下操做:
点击(此处)折叠或打开
#setfacl -m u:daemon:rw ./config.inc.php #setfacl -m u:daemon:rwx ./attachments/ ./forumdata/ ./forumdata/cache/ ./forumdata/templates/ ./forumdata/threadcaches/ ./forumdata/logs/ ./uc_client/data/cache/
三、点击下一步,进入以下页面:
若是出现以下界面,则说明须要在server1的mysql数据中建立数据库和用户具体步骤以下:
如出现以上状况则在server上作以下操做:
点击(此处)折叠或打开
mysql> create database discuz;
mysql> create user 'discuz'@172.16.77.1 identified by 'redhat';
mysql> create user 'discuz'@172.16.66.1 identified by 'redhat';
mysql> grant ALL on discuz.* to 'discuz'@172.16.66.1;
mysql> grant ALL on discuz.* to 'discuz'@172.16.77.1;
mysql> flush privileges;
四、之后一直点击就能够了,最终会获得以下界面:
五、注册一个用户并在其上发表帖子,这是在server3的操做以下:
在用户登陆server2这台主机就能看到以下效果了:
到此为止实验结束!!!