您的位置:首页 > 运维架构 > Tomcat

Apache2.2.4+Tomcat5.5.17+Php5.2.1+MySQL5.0.37整合(lipeng)

2007-03-30 16:30 323 查看
Apache2.2.4+Tomcat5.5.17+Php5.2.1+MySQL5.0.37整合
1:前提准备:
安装文件:
Tomcat5.5.17.exe
下载:http://apache.justdn.org/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.exe
apache_2.2.4-win32-x86-no_ssl.msi
下载:http://apache.mirrors.tds.net/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi
php-5.2.1-win32-installer.msi
下载: http://cn2.php.net/get/php-5.2.1-win32-installer.msi/from/this/mirror
Mysql5.0.37
下载: http://dev.mysql.com/downloads/

注意:这里每个版本都下载安装版,可以减少很多配置,也就是节约你的时间、精力。

测试文件:
test.php
<?php
phpinfo();
?>
test.jsp
<HTML>
<HEAD>
<TITLE> JSP TEST PAGE </TITLE>
</HEAD>
<BODY>
<%out.println("<H1>hello word!jsp</H1>");%>
</BODY>
</HTML>
testdb.php
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>

2.安装tomcat,不用配置。(我的安装路径:D:/WEBSERVER/Tomcat5.5)
打开IE:http://localhost:8080/ 出现小猫说明安装成功!
3.安装apache,也不用配置. (我的安装路径:D:/WEBSERVER/Apache2.2)
打开IE:http://localhost / 出现“It works!”说明安装成功!

4. 整合apache2.2.4与php5.2.1:
安装php5,(我的安装路径:D:/WEBSERVER/PHP/),安装的时候只需选择apache的版本,这里选择apache 2.2.x,然后选择你的apache安装位置(D:/WEBSERVER/Apache2.2)。其他的不用配置,默认即可。重启apache!完成后即可解析 .php文件。

测试:将两个测试文件放在D:/WEBSERVER/Apache2.2/htdocs下,然后IE:http://localhost/test.php,出现php的相关版本信息说明整合apache2.2.4与php5.2.1成功。
http://localhost/test.jsp,出现空白,因为这时apache不能解析.jsp。

5. 整合apache2.2.4与tomcat5.5.17:
因为apache2.2.4采用mod_proxy连接apache与tomcat,所以配置非常简单。这里我们只需要改动D:/WEBSERVER/Apache2.2/conf/ 下的httpd.conf的两个地方即可:
A:#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
找到这两行,把前面的#去掉。
B:在最后加上
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
保存后启动apache,再启动tomcat,地址栏输入http://localhost:8080/ 出现小猫说明整合apache2.2.4与tomcat5.5.17成功!

测试:将两个测试文件放在D:/WEBSERVER/Tomcat5.5/webapps/ROOT 下,然后IE:
http://localhost/test.jsp, 显示“hello word!jsp”,OK了!但是此时IE:
http://localhost/test.php,却不行(我最开始的时候表现是 服务器返回php文件,没有解析的,可以保存,类似下载)。
这主要是因为apache把所有80端口的请求都转发给了tomcat的8009(ProxyPass / ajp://127.0.0.1:8009/ ;ProxyPassReverse / ajp://127.0.0.1:8009/),由tomcat处理请求,这时的apache只相当于一个转发器的作用!而tomcat不能解析.php 所以对.php文件不成功。此时要是关闭tomcat,再访问还会出现Service Temporarily Unavailable 错误!
解决办法:将请求中静态的页面交给apache处理,动态请求交给tomcat处理。因为他们在各自的处理效率上比较高,这也是整合apache和tomcat的一个作用。
这里我们是要将php交给apache处理,而把jsp转发给tomcat处理。先看下面三句:
ProxyPass /images/ !
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/

第一句表示 /images/ 下的请求不转发,第2,3句的“ / ” 表示全部转发到8009端口(tomcat监听的)。所以这时只要把不想转发到tomcat处理的放在D:/WEBSERVER/Apache2.2/htdocs 下 名为images文件夹的下面即可。比如:我们把
test.php放在D:/WEBSERVER/Apache2.2/htdocs/images 下,
test.jsp放在D:/WEBSERVER/Tomcat5.5/webapps/ROOT下,在分别
http://localhost/images/test.php
http://localhost/test.jsp
就都可以显示我们需要的结果了!
Apache tomcat各司其职。这里都只是测试,具体项目,服务器的其他设置都可以通过在httpd.cong里修改,改变路径等。顺便说一下:这里的Apache tomcat是通过Mod-proxy连接起来的。Mod-proxy的缺点是,当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存在这个问题。
Mod-proxy优点是.可以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理JSP和servlet等动态请求。缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。

6.安装MySQL
这里面就没有什么了,除了一两项需要手动设置一下其他默认就可以了。

7.PHP连接MySQL数据库。

首先注意:安装版的php5.2.1默认没有安装支持MySQL的组件,所以我们在安装的时候需要手动选择安装该组件:

选中MySQL组建 ,安装……next…..finish。

测试与解决:
将testdb.php放在images文件夹下,IE:http://localhost/images/testdb.php
1.Fatal error:Call to undefined function mysql_connect()……
解决:
1.将php5目录下的libmysql.dll复制到system32目录下,
2.将php5目录下的php.ini复制到windows目录下并命名为php.ini
重启服务器

这时就可以显示:success 表明PHP连接MySQL数据库成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: