配置集成服务器环境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就没有那么多麻烦的选择题了,官网下载地址:
注意下支持的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 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)。
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,如果出现类似如下的信息即说明成功:
当然这里的版本肯定是你自己的版本。
你也可以测试一下,是否能连接上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://windows.php.net/download/
Apache服务器下载地址:
http://archive.apache.org/dist/httpd/binaries/win32/
Apche&php下载地址:
http://www.apachelounge.com/download/
下载链接apache和tomcat的连接工具:
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: