【運維囧事】WEB服務器升級之Apache與Tomcat集成(Windows版)

 

近期,因爲業務需求,要將現有WEB服務器進行升級。升級的重點嘛,就是兼容PHP網站程序!php

原Web服務器跑的是JSP網站,用的Java+Tomcat,如今須要升級到PHP+Apache,OK,看來此次又要俺親自出馬了!css

(順便說一句,除了我,也沒別人能作了,由於咱們部門基本算是公司的技術部了,而在咱們部門裏,目前也只有我一我的是主要負責技術方面工做的,因此,俺在部門的地位,嘿嘿~~(*^__^*)你懂得!)
html

好了,不廢話了,直接上乾貨!開整!java

 

平臺環境:WindowsServer2003(話說,企業對於IT的投資已經N年0投放了,因此。。。你懂的)
mysql

系統環境變量:PHP,JAVAweb

WEB架構:Apache2.2+Tomcat7.0sql

 

所需軟件:apache

1.apache-tomcat-7.0.39-windows-x86.zip(Tomcat開源免安裝版)windows

2.httpd-2.2.25-win32-x86-openssl-0.9.8y.msi(Apache安裝包)tomcat

3.jdk-6u12-windows-i586-p.exe(Java安裝包,含jdk和jre)

4.php-5.2.17-Win32-VC6-x86.zip(PHP開源免安裝版)

5.mod_jk-1.2.26-httpd-2.2.4.so(Apache與Tomcat通訊模塊)

 

大致流程:

1.先部署Apache+PHP環境

2.再部署Tomcat+Java環境

3.集成Apache+Tomcat平臺

4.測試驗收

 

測試驗收:

修改hosts文件,分佈四個域名,分別爲

www.test1.comPHP單頁測試index.php

www.test2.comJava站點測試JEECMS系統

www.test3.comJSP單頁測試index.jsp

www.test4.comPHP站點測試Discuz系統

153039311.jpg

 

153346544.jpg

 

操做步驟:

1.文件及網站目錄部署。

在D盤新建Web目錄,並將Apache,Tomcat,PHP,Java,和網站目錄分佈在該目錄中,如圖所示:

144556111.jpg

2.解壓PHP文件(php-5.2.17-Win32-VC6-x86.zip),並將文件內容分佈以下:

D:\web9999\php-5.5.1145058593.jpg

3.編輯php.ini文件

1.選擇文件中php.ini-dist文件,將該文件重命名爲php.ini(即刪除文件名後面的「-dist」)

2.打開php.ini文件,開啓咱們須要用到的一些系統模塊(將其以前的;號刪除掉便可。)

示例:

;extension=php_curl.dll(模塊關閉)

extension=php_curl.dll(模塊開啓)

我開啓的模塊,以下:

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll(PHPMyadmin須要開啓此項)

extension=php_mcrypt.dll(PHPMyadmin須要開啓此項)

extension=php_mysql.dll(開啓PHP和MySql之間的通訊)
extension=php_mysqli.dll(PHPMyadmin須要開啓此項)

extension=php_sockets.dll

修改目錄地址

extension_dir="D:/web9999/php-5.5.1/ext"

4.配置PHP系統環境變量。

1.打開環境變量對話框。

(不會打開環境變量對話框的同窗,請看操做步驟:

1.選中「個人電腦」,點擊鼠標右鍵,選擇「屬性」

2.系統彈出「系統屬性」對話框,選擇【高級】-【環境變量】

145757118.jpg

3.點擊【環境變量】後,系統彈出【環境變量】對話框。)

2.設置環境變量Path參數,指定PHP文件目錄,添加以下內容:

;D:\web9999\php-5.5.1;D:\web9999\php-5.5.1\ext

155158187.jpg

3.設置完成後,點擊【肯定】-【肯定】-【肯定】,退出【系統屬性】對話框。

4.至此,PHP環境變量設置完成。

5.檢驗PHP安裝版本狀態。

php-v

151303241.jpg

 

5.安裝Apache服務(httpd-2.2.25-win32-x86-openssl-0.9.8y.msi)

這個很簡單,默認下一步便可,端口選擇,默認就是開啓80端口

注意:只需在選擇安裝目錄時,指到「D:\web9999\apache2.2」便可。

安裝完目錄以下:

151637578.jpg

6.配置Apache服務

1.編輯httpd.conf文件

開啓部分模塊(注:Apache默認已開啓一些模塊,如下爲Apache未開啓模塊,手動修改便可。)

LoadModulealias_modulemodules/mod_alias.so(開啓別名解析功能)

LoadModulevhost_alias_modulemodules/mod_vhost_alias.so(開啓虛擬主機功能)

LoadModulephp5_module"D:/web9999/php-5.5.1/php5apache2_2.dll"(加載PHP)

編輯配置文件,指定PHP目錄地址
PHPIniDir"D:/web9999/php-5.5.1"

讓Apache支持PHP

AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php-source.phps

 

修改網站部署目錄

DocumentRoot"D:/web9999/httped"

指定虛擬主機配置文件

#Virtualhosts
Includeconf/extra/httpd-vhosts.conf

 

指定mod_jk配置文件

#jk_modulesetting
Includeconf/extra/httpd-jk.conf

 

讓Apache支持index.php頁面

<IfModuledir_module>
DirectoryIndexindex.htmlindex.php
</IfModule>

 

2.編輯虛擬主機配置文件httpd-vhosts.conf,位置:D:\web9999\apache2.2\conf\extra

新增虛擬主機test1.com

<VirtualHost*:80>
ServerAdminwebmaster@test1.com
DocumentRoot"D:/web9999/httped/test1"
ServerNametest1.com
ServerAliaswww.test1.com
ErrorLog"logs/test1.com-error.log"
CustomLog"logs/test1.com-access.log"common
</VirtualHost>

3.啓動Apache服務。

 

7.編輯PHP測試頁面,將其放入test1目錄中並測試

<?php
echo"helloworldphp"
?>

153635187.jpg

固然,還有不少朋友喜歡用信息測試頁,這都沒有任何問題。(*^__^*)

<?php
phpinfo();
?>

153825859.jpg

OK,至此Apache+PHP環境搭建完成!

 

=====JAVA+Tomcat===begin=========

8.部署JAVA環境

1.安裝jdk-6u12-windows-i586-p.exe(Java安裝包,含jdk和jre)

一樣默認下一步便可,只需在選擇安裝目錄時,指到「D:\web9999\Java」便可

安裝完成後,目錄以下:

154837505.jpg

154644903.jpg

2.設置JAVA環境變量

1.新建系統變量JAVA_HOME和CLASSPATH
變量名:JAVA_HOME
變量值:D:\web9999\Java\jdk1.6.0_12

160017493.jpg

變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

160229814.jpg

2.新增Path變量

變量名:Path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

155501780.jpg

3.檢測Java安裝版本狀態

java-version

160526195.jpg

其餘命令

java
javac

9.部署Tomcat

1.安裝apache-tomcat-7.0.39-windows-x86.zip(開源免安裝版).

直接解壓至「D:\web9999\Tomcat7.0」便可。如圖所示:

160819383.jpg

2.編輯server.xml文件

1.將測試端口改成9999,默認爲8080

<Connectorport="9999"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>

2.將AJP偵聽端口改成8029,默認爲8009

<Connectorport="8029"protocol="AJP/1.3"redirectPort="8443"/>

3.保存server.xml文件,並啓動Tomcat

4.訪問Tomcat頁面(成功)

161352382.jpg

 

至此,Tomcat與Apache就各自安裝完成啦~~

下面就進入最激動人心的,最具備技術含量的,最可以吹牛逼的平臺整合階段啦~~吼吼~~

 

10.部署mod_jk-1.2.26-httpd-2.2.4.so模塊

1.將mod_jk-1.2.26-httpd-2.2.4.so拷貝到Apache安裝目錄下的modules中,並重命名爲mod_jk.so

個人目錄地址:D:\web9999\apache2.2\modules

170053127.jpg

2.編輯httpd.conf文件

新建mod_jk配置文件httpd-jk.conf,並將其放在conf/extra目錄中

Includeconf/extra/httpd-jk.conf

3.編輯httpd-jk.conf文件,內容以下

#加載mod_jk.so
LoadModulejk_modulemodules/mod_jk.so

#指定工做目錄workers.properties

JkWorkersFile"D:/web9999/apache2.2/conf/workers.properties"
JkLogFilelogs/mod_jk.log

#指定哪些請求交給tomcat處理
#jkMount語句的功能是:當遇到符合條件的請求時,交由ajp13協議,繼而轉發給tomcat處理。
#jkUnMount語句的功能是:當遇到*.php的請求時,不交由ajp13協議處理。
#LoadModule指定加載

#www.test2.com虛擬站點
NameVirtualHost*.80

<VirtualHost*:80>

ServerNamewww.test2.com
ServerAliastest2.com*.test2.com
DocumentRoot"D:\web9999\httped\test2"
DirectoryIndexindex.jhtmlindex.doindex.html

JkMount/servlet/*.*ajp13
JkMount/*.jspajp13
JkMount/*.jhtmlajp13
JkMount/*.doajp13
JkMount/*.htmlajp13
JkMount/*.htmajp13
JkMount/*.cssajp13
JkMount/*.jpgajp13
JkMount/*.bmpajp13
JkMount/*.pngajp13
JkMount/*.swfajp13
JkMount/*.gifajp13
JkMount/*.svlajp13

JkUnMount/*.phpajp13
</VirtualHost>

#www.test3.com虛擬站點

<VirtualHost*:80>

ServerNamewww.test3.com
ServerAliastest3.com*.test3.com
DocumentRoot"D:\web9999\httped\test3"
DirectoryIndexindes.jspindex.jhtmlindex.doindex.html

JkMount/servlet/*.*ajp13
JkMount/*.jspajp13
JkMount/*.jhtmlajp13
JkMount/*.doajp13
JkMount/*.htmlajp13
JkMount/*.htmajp13
JkMount/*.cssajp13
JkMount/*.jpgajp13
JkMount/*.bmpajp13
JkMount/*.pngajp13
JkMount/*.swfajp13
JkMount/*.gifajp13
JkMount/*.svlajp13

JkUnMount/*.phpajp13
</VirtualHost>

注:添加JkMount/*.svlajp13是由於JEECMS安裝是會用到,若是沒有此項,安裝時會報錯

100910644.jpg


4.新建workers.properties文件,並將其放置在conf目錄中,文件內容以下:

#tomcat安裝目錄
workers.tomcat_home="D:/web9999/tomcat"

#jdk的目錄
workers.java_home="C:/ProgramFiles/Java/jdk1.6.0_12"

#定義模塊名稱
worker.list=ajp13

#tomcat的主機地址
worker.ajp13.host=127.0.0.1

#tomcat中ajp的端口
worker.ajp13.port=8029

#tomcat與apache通訊協議
worker.ajp13.type=ajp13

#server的負載平衡因數。加權比重,值越高,分得的請求越多
worker.ajp13.lbfactor=1

 

至此,mod_jk配置結束。

思路:

Apache啓動時,首先讀取httpd.conf文件,系統經過httpd.conf再去讀取httpd-jk.conf文件,經過httpd-jk.conf文件,系統再去加載mod_jk.so模塊,並讀取文件workers.properties,workers.properties文件中,咱們指定了Tomcat和Java的工做目錄,並指定相應的傳輸協議及傳送給Tomcat處理的文件類型,至此,整合完畢!

 

整合完成後,虛擬主機分配:

Apache:httpd-vhosts.conf配置

<VirtualHost*:80>
ServerAdminwebmaster@test1.com
DocumentRoot"D:/web9999/httped/test1"
ServerNametest1.com
ServerAliaswww.test1.com
ErrorLog"logs/test1.com-error.log"
CustomLog"logs/test1.com-access.log"common
</VirtualHost>

<VirtualHost*:80>
ServerAdminwebmaster@test2.com
DocumentRoot"D:/web9999/httped/test2"
ServerNamewww.test2.com
ErrorLog"logs/test2.com-error.log"
CustomLog"logs/test2.com-access.log"common
</VirtualHost>

<VirtualHost*:80>
ServerAdminwebmaster@test3.com
DocumentRoot"D:/web9999/httped/test3"
ServerNamewww.test3.com
ErrorLog"logs/test3.com-error.log"
CustomLog"logs/test3.com-access.log"common
</VirtualHost>

<VirtualHost*:80>
ServerAdminwebmaster@test4.com
DocumentRoot"D:/web9999/httped/test4"
ServerNamewww.test4.com
ErrorLog"logs/test4.com-error.log"
CustomLog"logs/test4.com-access.log"common
</VirtualHost>

 

httpd-jk.conf配置

<VirtualHost*:80>

ServerNamewww.test2.com
ServerAliastest2.com*.test2.com
DocumentRoot"D:\web9999\httped\test2"
DirectoryIndexindex.jhtmlindex.doindex.html

JkMount/servlet/*.*ajp13
JkMount/*.jspajp13
JkMount/*.jhtmlajp13
JkMount/*.doajp13
JkMount/*.htmlajp13
JkMount/*.htmajp13
JkMount/*.cssajp13
JkMount/*.jpgajp13
JkMount/*.bmpajp13
JkMount/*.pngajp13
JkMount/*.swfajp13
JkMount/*.gifajp13
JkMount/*.svlajp13

JkUnMount/*.phpajp13
</VirtualHost>

#www.test3.com虛擬站點

<VirtualHost*:80>

ServerNamewww.test3.com
ServerAliastest3.com*.test3.com
DocumentRoot"D:\web9999\httped\test3"
DirectoryIndexindes.jspindex.jhtmlindex.doindex.html

JkMount/servlet/*.*ajp13
JkMount/*.jspajp13
JkMount/*.jhtmlajp13
JkMount/*.doajp13
JkMount/*.htmlajp13
JkMount/*.htmajp13
JkMount/*.cssajp13
JkMount/*.jpgajp13
JkMount/*.bmpajp13
JkMount/*.pngajp13
JkMount/*.swfajp13
JkMount/*.gifajp13
JkMount/*.svlajp13

JkUnMount/*.phpajp13
</VirtualHost>

 

Tomcat:server.xml配置

<Hostname="www.test3.com"appBase="D:\web9999\httped\test3"
unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false">
</Host>

<Hostname="www.test2.com"appBase="D:\web9999\httped\test2"
unpackWARs="true"autoDeploy="true"
xmlValidation="false"xmlNamespaceAware="false">
</Host>

測試:

www.test1.comPHP單頁測試index.php

www.test2.comJava站點測試JEECMS系統

www.test3.comJSP單頁測試index.jsp

www.test4.comPHP站點測試Discuz系統

1.PHP單頁測試,編輯index.php,並將其放置test1,目錄中

頁面代碼:

<?php
echo"helloworldphp"
?>

測試結果:

180549962.jpg

 

2.JSP單頁測試,編輯index.jsp文件,並將其放置test3,目錄中

頁面代碼:

<%@pagelanguage="java"%>
<%@pageimport="java.util.*"%>
<html>
<head>
<title>JSPtestpage.</title>
</head>
<body>
<%out.println("HelloWorldJSP");%>
</body>
</html>

測試結果:

180624530.jpg

3.JAVA站點測試,下載JEECMS網站系統,並將其部署在test2目錄中

測試頁面

180834498.jpg

4.PHP站點測試,下載Discuz網站系統,並將其部署在test4目錄中

測試頁面:

180712267.jpg

 

 

 

Oh,Yeah!完勝!

 

 

 

博客話題】人在囧途之「運維囧」正在進行,歡迎你們參與,分享你運維工做中的囧事、趣事、經驗談
詳情查看:http://51ctotopic.blog.51cto.com/2009463/1254338

 

 

==============2013.9.25新增===============

隱藏網站目錄

打開httpd.conf文件,找以下配置

Options FollowSymLinks indexes

把它注掉改爲下面這樣

#Options FollowSymLinks indexes

Options None

其次另外一個:

 

Options Indexes FollowSymLinks

註釋掉原配置,錄入新配置

#Options Indexes FollowSymLinks

Options None

改完後重啓Apache服務.便可.

配置說明:

基本的安全配置,不容許目錄訪問

視頻補充

http://down.51cto.com/data/1091854

相關文章
相關標籤/搜索