近期,由于业务需求,要将现有WEB服务器进行升级。升级的重点嘛,就是兼容PHP网站程序!

原Web服务器跑的是JSP网站,用的Java+Tomcat,现在需要升级到PHP+Apache,OK,看来这次又要俺亲自出马了!

(顺便说一句,除了我,也没别人能做了,因为我们部门基本算是公司的技术部了,而在我们部门里,目前也只有我一个人是主要负责技术方面工作的,所以,俺在部门的地位,嘿嘿~~(*^__^*)你懂得!)

好了,不废话了,直接上干货!开整!

 

平台环境:WindowsServer2003(话说,企业对于IT的投资已经N年0投放了,所以。。。你懂的)

系统环境变量:PHP,JAVA

WEB架构:Apache2.2+Tomcat7.0

 

所需软件:

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

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

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