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這臺主機就能看到以下效果了:
到此爲止實驗結束!!!