近期,因爲業務需求,要將現有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系統
操做步驟:
1.文件及網站目錄部署。
在D盤新建Web目錄,並將Apache,Tomcat,PHP,Java,和網站目錄分佈在該目錄中,如圖所示:
2.解壓PHP文件(php-5.2.17-Win32-VC6-x86.zip),並將文件內容分佈以下:
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.系統彈出「系統屬性」對話框,選擇【高級】-【環境變量】
3.點擊【環境變量】後,系統彈出【環境變量】對話框。)
2.設置環境變量Path參數,指定PHP文件目錄,添加以下內容:
;D:\web9999\php-5.5.1;D:\web9999\php-5.5.1\ext
3.設置完成後,點擊【肯定】-【肯定】-【肯定】,退出【系統屬性】對話框。
5.檢驗PHP安裝版本狀態。
php-v
5.安裝Apache服務(httpd-2.2.25-win32-x86-openssl-0.9.8y.msi)
這個很簡單,默認下一步便可,端口選擇,默認就是開啓80端口
注意:只需在選擇安裝目錄時,指到「D:\web9999\apache2.2」便可。
安裝完目錄以下:
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"
?>
固然,還有不少朋友喜歡用信息測試頁,這都沒有任何問題。(*^__^*)
<?php
phpinfo();
?>
OK,至此Apache+PHP環境搭建完成!
=====JAVA+Tomcat===begin=========
8.部署JAVA環境
1.安裝jdk-6u12-windows-i586-p.exe(Java安裝包,含jdk和jre)
一樣默認下一步便可,只需在選擇安裝目錄時,指到「D:\web9999\Java」便可
安裝完成後,目錄以下:
2.設置JAVA環境變量
1.新建系統變量JAVA_HOME和CLASSPATH
變量名:JAVA_HOME
變量值:D:\web9999\Java\jdk1.6.0_12
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2.新增Path變量
變量名:Path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
3.檢測Java安裝版本狀態
java-version
其餘命令
java
javac
9.部署Tomcat
1.安裝apache-tomcat-7.0.39-windows-x86.zip(開源免安裝版).
直接解壓至「D:\web9999\Tomcat7.0」便可。如圖所示:
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頁面(成功)
至此,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
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安裝是會用到,若是沒有此項,安裝時會報錯
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"
?>
測試結果:
2.JSP單頁測試,編輯index.jsp文件,並將其放置test3,目錄中
頁面代碼:
<%@pagelanguage="java"%>
<%@pageimport="java.util.*"%>
<html>
<head>
<title>JSPtestpage.</title>
</head>
<body>
<%out.println("HelloWorldJSP");%>
</body>
</html>
測試結果:
3.JAVA站點測試,下載JEECMS網站系統,並將其部署在test2目錄中
測試頁面
4.PHP站點測試,下載Discuz網站系統,並將其部署在test4目錄中
測試頁面:
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服務.便可.
配置說明:
基本的安全配置,不容許目錄訪問
視頻補充