標籤:lapm
要求:httpd的動態和靜態資源分為兩台主機提供,mysql也用單獨一台主機。httpd服務提供虛擬機器主機,一個虛擬機器主機用於提供phpMyAdmin;另一個虛擬機器主機用於提供wordpress。安裝使用xcache為php服務提速。
方案:1台主機作為httpd伺服器,1台主機做php伺服器,使用php-fpm模式,1台主機作為mysql資料庫伺服器。
準備工作:三台主機,配置好yum源。
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7F/35/wKiom1cW2CzjWAOTAABM6RKxY-Q689.png" title="1.png" alt="wKiom1cW2CzjWAOTAABM6RKxY-Q689.png" />
第一步:配置httpd伺服器
yum安裝httpd包
~]# yum install httpd
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7F/33/wKioL1cW28rhbrVzAAAj5RwrD20320.png" title="2.png" alt="wKioL1cW28rhbrVzAAAj5RwrD20320.png" />
啟動服務
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7F/35/wKiom1cW25bCJoaOAACSq9rNlgw574.png" title="3.png" alt="wKiom1cW25bCJoaOAACSq9rNlgw574.png" />
測試是否能提供服務頁面
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/7F/35/wKiom1cW3BnDyXVsAAIn92zBOGg558.png" title="4.png" alt="wKiom1cW3BnDyXVsAAIn92zBOGg558.png" /> httpd服務工作正常
2. 配置虛擬機器主機和定義動態網頁面轉寄到php伺服器。
注釋掉主服務頁面路徑
~]# vim /etc/httpd/conf/httpd.conf
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7F/33/wKioL1cW36DRP4nJAAAjcecF8Bc927.png" title="5.png" alt="wKioL1cW36DRP4nJAAAjcecF8Bc927.png" />
添加一個設定檔,用於定義虛擬機器主機和定義轉寄。
~]# touch /etc/httpd/conf.d/virtualhost.conf
~]# vim /etc/httpd/conf.d/virtualhost.conf
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7F/36/wKiom1cW413BLRwoAAD81BWCDds485.png" title="6.png" alt="wKiom1cW413BLRwoAAD81BWCDds485.png" />
3. 測試虛擬機器主機
~]# touch /var/virtualhost/a/check.html
~]# vim /var/virtualhost/a/check.html
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/7F/33/wKioL1cW5Zmyu_i7AAAFH_QaRtQ818.png" title="7.png" alt="wKioL1cW5Zmyu_i7AAAFH_QaRtQ818.png" />
~]# touch /var/virtualhost/b/check.html
~]# vim /var/virtualhost/b/check.html
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7F/33/wKioL1cW5g7CYWQpAAADNfx7DHs112.png" title="8.png" alt="wKioL1cW5g7CYWQpAAADNfx7DHs112.png" />
在訪問測試的主機中定義將www.a.com和www.b.com解析為httpd伺服器的ip地址
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7F/36/wKiom1cW5gDTE8UnAABI0vTy-58265.png" style="float:none;" title="9.png" alt="wKiom1cW5gDTE8UnAABI0vTy-58265.png" />
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7F/36/wKiom1cW5gCQsWzKAABJIIOlyNI317.png" style="float:none;" title="10.png" alt="wKiom1cW5gCQsWzKAABJIIOlyNI317.png" />
註:httpd-2.4:rpm包安裝預設編譯支援了fcgi模組;可以使用httpd -M查看已經載入的模組。
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/7F/37/wKiom1cW8vfwB1UfAAAQIUeF0qQ715.png" title="10.5.png" alt="wKiom1cW8vfwB1UfAAAQIUeF0qQ715.png" />
4.使用systemctl enable httpd.service將服務設定為開機啟動
第二步:配置php伺服器
yum安裝php-fpm包
~]# yum install php-fpm
查看狀態
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7F/33/wKioL1cW6O-SKYx3AAAjugmiLsk299.png" title="11.png" alt="wKioL1cW6O-SKYx3AAAjugmiLsk299.png" />
2. 修改設定檔
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7F/34/wKioL1cW7LWQTaZ6AABCcH6rdJY983.png" style="float:none;" title="12.png" alt="wKioL1cW7LWQTaZ6AABCcH6rdJY983.png" />
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7F/36/wKiom1cW6_XhUPneAABAJMWQx08648.png" style="float:none;" title="13.png" alt="wKiom1cW6_XhUPneAABAJMWQx08648.png" />
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7F/34/wKioL1cW7LaxYpSbAAAtIRTMipY660.png" style="float:none;" title="14.png" alt="wKioL1cW7LaxYpSbAAAtIRTMipY660.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7F/36/wKiom1cW6_agEOdwAAAiSI03jfU927.png" style="float:none;" title="15.png" alt="wKiom1cW6_agEOdwAAAiSI03jfU927.png" />
~]# mkdir /var/lib/php/session
~]# chown apache:apache /var/lib/php/session
3. 啟動服務,查看狀態
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7F/36/wKiom1cW7OHAwxjKAACAw1Mawik017.png" title="16.png" alt="wKiom1cW7OHAwxjKAACAw1Mawik017.png" />
4. 在php伺服器的資源路徑下添加測試頁面並測試
~]# vim /var/phppage/a/check.php
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/7F/37/wKiom1cW76eDRAG-AAAH_ROmp8Y932.png" title="17.png" alt="wKiom1cW76eDRAG-AAAH_ROmp8Y932.png" />
~]# vim /var/phppage/b/check.php
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/7F/37/wKiom1cW8H-yhtG5AAAILhlKLrM290.png" title="18.png" alt="wKiom1cW8H-yhtG5AAAILhlKLrM290.png" />
訪問
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/37/wKiom1cW8QWxSE9BAAC-0f9lef4807.png" style="float:none;" title="19.png" alt="wKiom1cW8QWxSE9BAAC-0f9lef4807.png" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/34/wKioL1cW8cbQ31_eAADNALPAJP4523.png" style="float:none;" title="20.png" alt="wKioL1cW8cbQ31_eAADNALPAJP4523.png" />
5.安裝php-mysql包(php和mysql之間的通訊協定)
~]# yum install php-mysql
然後重載一下服務
~]# systemctl reload php-fpm.service
6.使用systemctl enable php-fpm.service將服務設定為開機啟動
第三部:配置mysql伺服器
yum安裝mariadb包
~]# yum install mariadb-server
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/7F/37/wKiom1cW96eT7SDZAAAhSeHgWSw503.png" title="21.png" alt="wKiom1cW96eT7SDZAAAhSeHgWSw503.png" />
2.啟動服務
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/7F/38/wKiom1cXD_7woDxpAAEz57ifTW8552.png" title="22.png" alt="wKiom1cXD_7woDxpAAEz57ifTW8552.png" />
3.測試
建立一個測試使用者和資料庫
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7F/38/wKiom1cXEA3hJ5jRAAC4yrON0ZQ070.png" title="23.png" alt="wKiom1cXEA3hJ5jRAAC4yrON0ZQ070.png" />
在php伺服器上放置網頁資源的路徑下添加測試頁面
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/36/wKioL1cXFOrhJv9EAAAbbXX6ONo804.png" title="28.png" style="float:none;" alt="wKioL1cXFOrhJv9EAAAbbXX6ONo804.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7F/39/wKiom1cXFCnCm_uSAAAjH2WKq3Y182.png" style="float:none;" title="24.png" alt="wKiom1cXFCnCm_uSAAAjH2WKq3Y182.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7F/36/wKioL1cXFOmxvyOaAAAjFNMLqq8327.png" style="float:none;" title="25.png" alt="wKioL1cXFOmxvyOaAAAjFNMLqq8327.png" />
訪問測試
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7F/39/wKiom1cXFCnjOcXvAAB-mkpcJak200.png" style="float:none;" title="26.png" alt="wKiom1cXFCnjOcXvAAB-mkpcJak200.png" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/39/wKiom1cXFCriYk5dAABsfeB_oZw803.png" style="float:none;" title="27.png" alt="wKiom1cXFCriYk5dAABsfeB_oZw803.png" />
4.使用systemctl enable mariadb.service將服務設定為開機啟動
LAMP搭建完成,可以正常提供服務。
第四步:用www.a.com這個虛擬機器主機提供phpMyAdmin,用www.b.com這個虛擬機器主機提供wordpress
1.準備phpMyAdmin,wordpress的源碼包
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/37/wKioL1cXGTuidPtvAAAW2eL6GL0247.png" title="29.png" alt="wKioL1cXGTuidPtvAAAW2eL6GL0247.png" />
2.解壓到放置頁面資源的路徑下
~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip -d /var/phppage/a
3.編輯其設定檔
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7F/37/wKioL1cXHhLzQ4eCAADf-pHmIIs502.png" title="31.png" alt="wKioL1cXHhLzQ4eCAADf-pHmIIs502.png" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7F/37/wKioL1cXHnPQjIB9AABzkLoR3SY493.png" title="30.png" alt="wKioL1cXHnPQjIB9AABzkLoR3SY493.png" />
4.訪問
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7F/39/wKiom1cXH0axQjYCAACxnQdLecI006.png" title="32.png" alt="wKiom1cXH0axQjYCAACxnQdLecI006.png" />
已經可以訪問了,但是發現頁面有些地方無法顯示。這是因為此頁面是由動態資源和靜態資源組成的,而httpd伺服器只是把動態資源請求轉寄到php伺服器了,靜態資源是httpd提供,它現在資源路徑下並沒有此資源,所以此頁面顯示不全。原理可見
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/37/wKioL1cXIZbT0C5hAAB3558nBF8829.jpg" title="QQ圖片20160420142202.jpg" alt="wKioL1cXIZbT0C5hAAB3558nBF8829.jpg" />
解決方案:在httpd伺服器上的資源放置路徑下同樣放置一份phpMyAdmin源碼檔案,這樣頁面就可以顯示完全了。
現在我們要訪問phpMyAdmin這個頁面時,需要在給出網域名稱的同時還要指定url。這樣太麻煩。
有兩個方案可以解決。
第一個方案:修改虛擬機器主機的配置,修改DocumentRoot 路徑 同時修改轉寄後的路徑
DocumentRoot /var/virtualhost/a/phpMyAdmin-4.4.14.1-all-languages
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.0.132:9000/var/phppage/a/phpMyAdmin-4.4.14.1-all-languages/$1
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/7F/3A/wKiom1cXKo3Ty0fgAABeulGXmAg373.png" title="33.png" alt="wKiom1cXKo3Ty0fgAABeulGXmAg373.png" />
然後使用httpd -t測試組態檔案文法,再重載以下設定檔,就可以了
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7F/3A/wKiom1cXKqCQCMKQAACppld4fgU956.png" title="34.png" alt="wKiom1cXKqCQCMKQAACppld4fgU956.png" />第二個方案:將所有phpMyAdmin源碼檔案直接放在DocumentRoot 路徑下。php伺服器則直接放在指定轉寄後的路徑下。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7F/3A/wKiom1cXK8Hxrpn_AAC3hBNPI3M936.png" title="36.png" alt="wKiom1cXK8Hxrpn_AAC3hBNPI3M936.png" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7F/39/wKiom1cXJYvh1-OEAAC-3DyldSA157.png" title="35.png" alt="wKiom1cXJYvh1-OEAAC-3DyldSA157.png" />
布置wordpress
~]# unzip wordpress-4.3.1-zh_CN.zip -d /var/phppage/b
]# ]# cp wp-config-sample.php wp-config.php
]# vim wp-config.php
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7F/38/wKioL1cXLwLAtu_YAABt21MV1AU622.png" title="37.png" alt="wKioL1cXLwLAtu_YAABt21MV1AU622.png" />
注意:這樣wp用來登陸和使用的資料庫使用者需提前建立。
後續過程類似配置phpMyAdmin,就不重複了。
第五步:安裝xcache,提高處理php請求速度
1.安裝前先做一下壓力測試
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7F/38/wKioL1cXMMHDXjAPAABniOwMB_I064.png" style="float:none;" title="38.png" alt="wKioL1cXMMHDXjAPAABniOwMB_I064.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7F/3A/wKiom1cXMAHTS5BAAAC6fw_wlz0512.png" style="float:none;" title="39.png" alt="wKiom1cXMAHTS5BAAAC6fw_wlz0512.png" />
這次我們使用編譯安裝xcache
準備工作:下載一個xcache源碼包,安裝Development Tools和Server Platform Development包組。安裝php-devel包。
2.開始編譯
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/7F/3B/wKiom1cXNTGixJRTAADwC0s-ElY828.png" title="40.png" alt="wKiom1cXNTGixJRTAADwC0s-ElY828.png" />
如果這一步沒問題,執行make,然後執行make instal。
安裝完成後,添加設定檔,然後讓服務重載。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7F/3B/wKiom1cXNX-i1J0ZAAAZIX-Wlyc461.png" title="42.png" alt="wKiom1cXNX-i1J0ZAAAZIX-Wlyc461.png" />
3.再做一次壓力測試
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7F/3B/wKiom1cXNfrwmcWwAABocFn0Wz4275.png" style="float:none;" title="43.png" alt="wKiom1cXNfrwmcWwAABocFn0Wz4275.png" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7F/39/wKioL1cXNrvwZ7MMAACz-q-df1Q772.png" style="float:none;" title="44.png" alt="wKioL1cXNrvwZ7MMAACz-q-df1Q772.png" />
對比兩次壓力測試可以看出,裝了xcache以後,php請求處理速度提高3倍左右。
在CentOS 7 上搭建LAMP