Windows集成服务器环境Apache+Tomcat+Php+Jsp+MySQL

时间:2023-01-22 06:17:59


                             配置集成服务器环境Apache+Tomcat+Php+Jsp+MySQL

 

说明:Apache版本和Tomcat & Php & MySQL版本之间没有太大限制,当然各个软件要组合成一个稳定,安全,兼容好又要易于升级的集成环境还是要下点功夫的。当然,一般情况下选择不太新(求稳定)又不太老(求被官网后续支持)就可以,主要还是根据自己的需求环境来定吧。

一、安装前准备:

1.下载Apache并选择apache服务器版本

 

注:Apache的服务器改名叫了httpd。

 

Apache下载官网1:http://httpd.apache.org/

在官网你会看到的是:Apache httpd 2.4.10 和Apache httpd 2.2.29 Released 这是目前最新的版本。

 

官网地址2:http://archive.apache.org/dist/httpd/binaries/win32/

以前Apache服务器的安装包是apache_xxxx.msi格式的,从这个地址可以下载的到。

 

官网下载地址3:http://www.apachelounge.com/download/

如果你的是64位的操作系统,你可能很难找到针对64位的apache服务器,那么你可以去跟Php搭配的64位下载包,它可以支持最新的Php VC11编译环境。

官网下载地址3:http://www.apachelounge.com/download/ 当然并不是说,下载64的一定要到这个地址,本教程就是使用的apache_2.2.6-win32-x86-openssl-0.9.8e.msi(下载地址2下载的,目前都在win32目录下,成功安装到了WindowServer08_64bit和win7_32bit上)

 

下载地址知道了,那么该选择用哪个版本了:

httpd-2.2.25-win32-x86-openssl-0.9.8y.msi

httpd-2.2.25-win32-x86-no_ssl.msi

apache_2.2.6-win32-x86-openssl-0.9.8e.msi

apache_2.2.6-win32-x86-no_ssl-0.9.8e.msi

选择一:上面的下载文件格式中的no_ssl 和 openssl是指是否支持ssl安全证书认证(前者只支持http,而后者支持http和https),根据需要选择吧;选择二:考虑到以后可能的移植性,你也可以下载非.msi安装格式的免安装包;选择三:64位的操作系统用户可能找安装包比较难,其实,官网下载地址2,win32目录下下载的可以安装到64位系统下的,当然你也可以去下载地址3去下载类似httpd-2.4.10-win64-VC11.zip安装包,它明确支持wein64又支持VC11编译环境的Php(Php5.4以上的可以选择此下载地址)。

本教程选择的是2007年出的版本:apache_2.2.6-win32-x86-openssl-0.9.8e.msi这个安装版的服务器。

 

2.下载tomcat并选择版本

Tomcat就没有那么多麻烦的选择题了,官网下载地址:

http://tomcat.apache.org/ 

注意下支持的jdk版本就好了,本教程选择的是:Tomcat 7.0.56 Released 免安装版

3.下载Apache和Tomcat连接整合工具包并选择版本

官网下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

打开之后你可以看到下载文件格式为:

tomcat-connectors-1.2.39-windows-i386-httpd-2.2.x.zip

前面的编号是连接器的版本号,后面的版本号对应Apache(or httpd)的版本号,一定要选择跟Apache服务器一致的版本号!本教程使用的连接工具包是tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x.zip

4.下载Php并选择版本

官网下载地址1:http://php.net/downloads.php

官网下载地址2(针对windows系统):

http://windows.php.net/download/

本教程是windows系统环境,选择的是地址2,地址二左侧告诉我们怎样选择版本号,简单说来:

如果用IIS作为服务器,那么选择No-Thread Safe(NTS) Version of PHP(非线程安全的版本)。

用Apache作为服务器,那么用线程安全的版本Thread Safe(TS) Version of PHP{并且选择VCxx有条件,条件a:用Apache官网下载地址3:http://www.apachelounge.com/download/下载的Apache服务器,你可以下载使用VC11的版本(32 or 64位)。非条件a:使用的是官网下的Apache1或者是Apache2版本,那么你就只能用VC6版本的PHP(If you are using PHP with Apache 1 or Apache2 from apache.org (not recommended) you need to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binariesneed to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binariesIf you are using PHP with Apache 1 or Apache2 from  (not recommended) you need to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binariesIf you are using PHP with Apache 1 or Apache2 from apache.org (not recommended) you need to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binariesneed to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binaries)} 

本教程选择了:php-5.3.5-Win32-VC6-x86.msi(后因不愿安装Zend Guard Loader ,选择安装ZendOptimizer-3.3.3-Windows-i386.exe,而将版本降低为php-5.2.9-Win32-VC6-x86.zip,详细原因见:http://blog.csdn.net/z507263441/article/details/40131185)。Non-Thread Safe (NTS) versions of PHPNnnnndddddddNon-Thread Safe (NTS) versions of PHP

5.下载Mysql & SqlServer

数据库下载安装就不在赘述,请自行下载安装(跟集成服务器环境没多大关系)。

6.本教程版本组合 & 系统环境

Apache2.2.6 + Tomcat7.0 + PHP5.2.9 + MySQL5.6 + SQLServer2008 R2(可以不要)

系统环境:WindowsServer2008 + Jdk7(请自行安装)

7.安装顺序

这个没有什么必须的顺序,按配置需要,一般为:安装Apache、安装PHP、配置Apache和PHP、安装Tomcat、配置Apache和Tomcat,或者全安装好了,一总配置也没问题(数据库安装的先后顺序随意,如果你想在配置PHP时测试能否连接到MySQL,那你可以先把MySQL先安装好)。

二、安装

1.安装配置Apache

双击apache_2.2.6-win32-x86-openssl-0.9.8e.msi安下一步下一步即可安装完成,很简单。集成服务器,我们不妨统一安装在一个盘下的同一目录,这样方便配置管理,本教程放在E:/WEB/apache2.2目录下,同时在E:/WEB/目录下新建一个文件夹起名为www,用来存放Apache和Tomcat共同的应用(可以放在不同的目录,理论上讲这样更安全)。安装时会让你填写域名主机啊什么的,有的话就填,没有随便填,它在配置文件httpd.conf中可以找的到。

配置apche:在Apache2.2/conf目录下找到httpd.conf用文本编辑器打开。

(1)修改Apache安装根目录:ServerRoot "E:/WEB/apache2.2" (直接查找ServerRoot,并修改,指向Apache安装根目录

(2)修改Apache网站服务目录:DocumentRoot "E:/WEB/www" (直接查找DocumentRoot,并修改,可以自定义修改服务目录)

(3)添加或修改字符集:添加AddDefaultCharset UTF-8(后面这个值根据自己需要修改)

(4)修改默认主页:查找<Directory ></Directory >将其修改为如下:<Directory "E:/WEB/www">DirectoryIndex index.html index.php index.jsp</Directory>DirectoryIndex 后面的值可以自行设置,先后顺序代表优先采用的首页。

(5)为方便测试,你可以把安装时填写的域名,主机名改成下面的:

Listen 127.0.0.1:80

Listen 80

即监听本地的80端口

(6)配置虚拟主机(这个可以到最后再整理)

添加:

#设置虚拟主机

#如果非虚拟主机,将<VirtualHost localhost>和最后的</VirtualHost>注释或者删除掉即可

<VirtualHost *:80>

 DocumentRoot E:/WEB/www

 ServerName localhost

DirectoryIndex index.php index.html index.html.var index.jsp    

JkMount /*WEB-INF ajp13

JkMount /*.jsp ajp13

JkMount /servlet/* ajp13

JkMount /*.do ajp13

JkMount /*.action ajp13

JkMount /Javenmy/* ajp13

</VirtualHost>

2.安装配置PHP,并整合Apache和PHP

php-5.2.9-Win32-VC6-x86.zip解压到E:/WEB/目录下,并将名字改为php5,在目录下知道名字为php.ini-development的文件,并改名为php.ini它就是PHP的配置文件了,将php.ini复制一份放到C:windows目录下。

(1)将PHP加载到Apache,使Apache支持PHP:

打开Apache的配置文件httpd.conf添加下面三句以支持PHP

LoadModule php5_module "E:/WEB/php5/php5apache2_2.dll"    #Apache就是去这个目录下调用php.dll,最后面的.dll要根据你php的安装目录下找)

PhpIniDir "E:/WEB/php5"

AddType application/x-httpd-php .php .html

(2)修改PHP的配置文件php.ini

打开php.ini找到extension_dir,这是扩展包的目录,将其值改为E:/WEB/php5/ext/你可以看到该目录下都是.dll文件,修改后为extension_dir =E:/WEB/php5/ext/,然后就可以去解开对应应用的注释了,把下面语句前的;注释去掉:

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll      #启用PHP连接mysql的功能

extension=php_mysqli.dll

extension=php_openssl.dll

extension=php_sockets.dll

extension=php_zip.dll

这些.dll文件都是刚才那个ext目录下的,也就是PHP的扩展功能,可以按需要请用想用的功能。

添加date.timezone = "Asia/Shanghai"这句话,指定时区

(3)测试PHP和Apache是否连接成功

在E:/WEB/www目录下新建一个phpinfo.php的文件,里面的内容为

<html>

<head>

<title>php test</title>

  <?php date_default_timezone_set("PRC"); ?>

</head>

<?php

phpinfo();

?>

</html>

然后启动Apache,在浏览器里输入:http://localhost/phpinfo.php,如果出现类似如下的信息即说明成功: 

                                            Windows集成服务器环境Apache+Tomcat+Php+Jsp+MySQL

当然这里的版本肯定是你自己的版本。

你也可以测试一下,是否能连接上MySQL(前提是你已经安装了Mysql)在E:/WEB/www目录下新建一个conn.php的文件,内容如下:

<?php

$mycon=mysql_connect("localhost","用户名","密码");

if($mycon){

  echo "connect success!";

}

else{

  echo"connect fail!check again and again,then fail,change other verdion php";

}

?>

在浏览器里输入:http://localhost/conn.php,如果输出:connect success!说明连接成功。

 

3.安装配置Tomcat,并整合Apache和Tomcat

(1)为什么要整合

Apache处理静态页面如html等的功能远远强于Tomcat,但动态的页面需要交给Tomcat处理,如jsp,servlet等。整合后,一方面使其功能完善(动静页面都可以处理),另一方面也起到了动静分离,减轻服务器压力的效果。对于一个Apache对应多个tomcat负载均衡的问题这里就不在讲述了,网上对于负载均衡的例子也很多。

 

(2)整合方法:

将Tomcat解压到E:/WEB/目录下,改名为tomcat即E:/WEB/tomcat;解压tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x将其目录下的mod_jk.so复制到Apache安装目录下的modules目录下,即E:/WEB/Apache2.2/modules/,然后,在Apache的httpd.conf文件中添加一下语句:

# 配置 mod_jk

LoadModule jk_module "E:/WEB/Apache2.2/modules/mod_jk.so"

#加载集群中的workers

JkWorkersFile "E:/WEB/tomcat/conf/workers.properties"

 

#指定jk的日志输出文件

JkLogFile "E:/WEB/Apache2.2/logs/mod_jk.log"

#指定日志级别

JkLogLevel warn

# 声明mod_jk的日志的时间戳格式(可选)

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# 将/*.action和/*.jsp类型的请求都分配给Tomcat,其余类型的有Apache Http Server自己处理 

# 注意JkMount后面的ajp13即对应worker.properties文件中worker.list里的实例ajp13的名称

JkMount /*.action ajp13

JkMount /*.do ajp13

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13

 

JkWorkersFile 这一列的workers.properties(这个文件也可以放在Apache的conf下,只要在上面制定好目录路径即可)文件要自己在E:/WEB/tomcat/conf/目录下新建,其内容为:

 

workers.tomcat_home="E:/WEB/tomcat/"   #让mod_jk模块知道Tomcat的安装路径

workers.java_home="C:/Program Files/Java/jdk1.7.0_60/"    #让mod_jk模块知道jdk路径

ps=/  #当前目录

worker.list=ajp13   #这里是关键,名字要和httpd.conf的一致。如果这里改了httpd.conf也要改。

worker.ajp13.port=8009   #工作端口,tomcat的jk监听端口,可以查看Server.xml中有port="8009"

worker.ajp13.host=localhost   #Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP

worker.ajp13.type=ajp13   #协议类型,不能改变,会出问题

worker.ajp13.lbfactor=1   #负载平衡因子

 

(3)修改Tomcat发布app的目录

在E:/WEB/tomcat/conf/server.xml最下找到:<Host>标签对,将其中的appBase=””值改为E:/WEB/www",如:<Host name="localhost"  appBase="E:/WEB/www" unpackWARs="true" autoDeploy="true">,这样E:/WEB/www就是Tomcat和Apache共用的的发布目录了。

(4)端口问题

Apache的默认端口是80端口,也是网站服务器要默认监听的端口,这个采用这个不用变;tomcat默认启用的端口为8080,在Tomcat/conf/server.xml中可以找到:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 但8080这个端口大家都知道,最好修改一下,比如改为: 8899,本教程就不再改了。

(5)测试是否整合成功

E:/WEB/www/目录下新建一个Myjsp.jsp文件内容为:HELLO WORLD !(不能使html页面,因为测试的是Apache有没有将动态也没按转交给Tomcat处理)

启动Apache服务和Tomcat服务。

在浏览器输入并回车:http://localhost/Myjsp.jsp (默认80端口这里省略80,对应Apache)

在浏览器输入并回车:http://localhost:8080/Myjsp.jsp (8080端口不可省略,对应Tomcat)

如果上述两种结果一样,则说明整合成功。

两个数据库的安装就简单了,也不需要什么配置,这里就不在介绍了,至此,Apache+Tomcat+PHP+Mysql集成服务器环境配置完成。

参考文档:

Php下载地址:

http://php.net/downloads.php

http://windows.php.net/download/

Apache服务器下载地址:

http://httpd.apache.org/

http://archive.apache.org/dist/httpd/binaries/win32/

 

Apche&php下载地址:

http://www.apachelounge.com/download/

 

下载链接apachetomcat的连接工具:

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

后面的版本号对应apache的版本号(或httpd的版本号)

 

配置参考文档:

http://www.cnblogs.com/zyw-205520/p/3603262.html

http://blog.chinaunix.net/uid-1726782-id-2810751.html

http://blog.csdn.net/lifetragedy/article/details/7698555

Php.in详解

http://www.iteye.com/topic/80667

Apache转发到Tomcat

http://cyzgbw.iteye.com/blog/1828770