0. Apache、PHP、MYSQL参考:关于Apache+MySQL+PHP在windows平台的整合
1. Tomcat:
a) 到http://www.apache.org下载Tomcat
如:apache-tomcat-7.0.27-windows-x86。直接解压缩到某个目录。
b) apache-tomcat-7.0.27-windows-x86 改名为tomcat7,如:
E:\WebServer\tomcat7
c) 运行bin目录下catalina.bat设置环境变量
JRE_HOME=C:\Program Files\Java\jre7
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04
CATALINA_HOME=E:\WebServer\tomcat7
CLASSPATH=./;C:\Program Files\Java\jdk1.7.0_04\lib\dt.jar;C:\Program Files\Java\jdk1.7.0_04\lib\tools.jar;C:\Program Files\Java\jdk1.7.0_04\bin;
在环境变量Path中追加:
%JRE_HOME%;%JAVA_HOME%;%JAVA_HOME%\bin;%CLASSPATH%;
运行startup.bat启动tomcat服务,输入 http://localhost:8080/可以正常显示页面表示OK,可以通过查看源代码确定内容为index.jsp代码,位于tomcat7\webapps下。Webapps就是tomcat作为web server的web root目录。
目前为止,tomcat即充当了JSP的Engine又充当了Web Server.
接下来我们将Apache作为对应的Web Server,tomcat仅当做JSP Engine.
2. 安装Apache httpd服务
搜索"apache httpd"
httpd-2.2.25-win32-x86-openssl-0.9.8y.msi
3. Mod_jk(Tomcat connector)
http://tomcat.apache.org/download-connectors.cgi
将mod_jk.so复制到
C:\Program Files\Apache Software Foundation\Apache2.2\modules
mod_jk.so要和Apache版本一致,可以均采用最新版本。
4. 相关配置
a) C:\Program Files\Apache Software Foundation\Apache2.2\conf下创建workers.properties,内容如下:
workers.tomcat_home=E:\WebServer\tomcat7 workers.java_home=C:\Program Files\Java\jdk1.7.0_04 ps=\ #worker.list=ajp13 worker.list=ajp12,ajp13 worker.ajp12.port=8007 worker.ajp12.host=localhost worker.ajp12.type=ajp12 worker.ajp12.lbfactor=1 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13 worker.ajp13.lbfactor=1 worker.loadbalancer.type=lb worker.loadbalancer.balanced_workers=ajp12,ajp13 worker.inprocess.type=jni worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)jasper.jar worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)servlet.jar worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)webserver.jar worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar worker.inprocess.cmd_line=-config worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml worker.inprocess.cmd_line=-home worker.inprocess.cmd_line=$(workers.tomcat_home) worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home) |
参考官方文档:
http://tomcat.apache.org/connectors-doc/reference/workers.html
tomcat worker是开启的服务实例,用来等待来自web server(如Apache)的servlet或其他内容,进行解析,然后返回response给web server.
b) 修改httpd.conf文件
(C:\Program Files\Apache Software Foundation\Apache2.2\conf)
#andy@2014.5.31,add for tomcat connectors
# andy@2014.5.31 # andy@2014.5.31
|
c) Tomcat服务配置(tomcat7/bin)
service.bat install #安装tomcat服务,默认为手动 Net Start tomcat7 #开启tomcat服务 Net Stop tomcat7 #关闭tomcat服务 Service.bat remove #卸载tomcat服务 |
也可以在bin目录下直接运行tomcat实例:
Startup.bat #开启tomcat
Shutdown.bat #关闭tomcat
d)
在ROOT目录下创建 test.jsp文件
<%@ page contentType="text/html;charset=gb2312"%>
<%out.print("Tomcat And Apache JSP Success");%>
5. 停止tomcat,apache服务器,重新启动。
输入
http://localhost/
http://localhost:8080/
http://localhost/test.jsp
应该正常显示html和jsp信息,则成功关联tomcat和apache。
可以停止tomcat,测试JSP是否能解析,不能解析则正常。
如果不正常,停止tomcat,重新解压缩tomcat,覆盖现在的文件再测试。
编写servlet测试:添加相应转发语句(WhereAreYou)
#andy@2014.5.31,add for tomcat connectors
#connecting to tomcat using ajp13
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "E:/WebServer/apache/conf/workers.properties"
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /WhereAreYou ajp13
JkMount /WhereAreYou/* ajp13
6. 下载安装 mysql
mysql-5.6.10-win32 (1)
7. JDBC驱动下载安装
官方下载:http://dev.mysql.com/downloads/connector/j/ 需要注册
这个网站不需要注册:
http://mirror.services.wisc.edu/mysql/Downloads/Connector-J/
关联mysql,将mysql-connector-java-5.1.20-bin.jar复制到tomcat下的lib目录下
将对应的jar复制到tomcat的lib下,然后重启tomcat
写一段连接MYSQL数据库的代码测试一下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url ="jdbc:mysql://localhost/test?user=&password=&useUnicode=true&characterEncoding=8859_1";
//test为你的数据库名,用户名和密码根据情况输入
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from staff";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("Success");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
8. 测试
重启tomcat,apache,在浏览器输入:http://localhost:8080/ 能显示正常表示tomcat运行正常;输入法http://localhost/能显示正常,则表示tomcat+apache组合OK,apache能调用tomcat connector解析JSP.
http://localhost/index.php也能正常显示,表示PHP工作正常.
9. FAQ
a) 启动Apache提示一下错误(logs/error.log)
Cannot load C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_jk.so into server |
Mod_jk.so的版本一定要与Apache的版本一致.
b) 主要配置文件中行末的空格也要去掉,避免解析错误。
c) 如果tomcat不能正常运行http://localhost:8080/ 可以重新解压缩覆盖之前的文件,workers.properties不用变。重新运行基本就没有问题了。
10. 参考资料:
a) http://www.knowsky.com/344534.html
b) 其他网页资料,不一一列举了