在windows XP下搭建Apache+Tomcat+JSP+PHP+MYSQL环境

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
#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


# andy@2014.5.31
#
DocumentRoot "E:/WebServer/tomcat7/webapps"

# andy@2014.5.31
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "E:/WebServer/tomcat7/webapps">


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的版本一致.

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.18/mod_jk-apache-2.2.2.so

      

b)     主要配置文件中行末的空格也要去掉,避免解析错误。

c)      如果tomcat不能正常运行http://localhost:8080/ 可以重新解压缩覆盖之前的文件,workers.properties不用变。重新运行基本就没有问题了。

10.    参考资料:

a)      http://www.knowsky.com/344534.html

b)         其他网页资料,不一一列举了

 

 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译 ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr /i nclude --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=www --with-fpm-group=www --without-gdbm --with-mcrypt=/usr/local/apps/libmcrypt --disable-fileinfo 报错:1, **configure: error: system libzip must be upgraded to version >=**0.11。 使用Yum最新版只到0.10,不足以达到要求。 一、先删除libzip yum remove libzip -y SSH执行以上命令,先删除libzip 和 libzip-devel 二、下载安装并手动编译 wget https://nih.at/libzip/libzip-1.2.0.tar.gz tar -zxvf libzip-1.2.0.tar.gz cd libzip-1.2.0 ./configure make && make install 三、(可忽略)另外最新版本请参考官网:https://nih.at/libzip/ 1.5.0的libzip需要cmake wget https://libzip.org/download/libzip-1.5.0.tar.gz tar -zxvf libzip-* cd libzip* mkdir build && cd build && cmake .. && make && make install 报错2: error: off_t undefined; check your library configuration 根据报错信息分析 configure: error: off_t undefined; check your library configuration 未定义的类型 off_t。 off_t 类型是在 头文件 unistd.h中定义的,在32位系统 编程成 long int ,64位系统则编译成 long long int ,这里题主的系统应该是 64位的吧,在进行编译的时候 是默认查找64位的动态链接库,但是默认情况下 centos 的动态链接库配置文件/etc/ld.so.conf里并没有加入搜索路径,这个时候需要将 /usr/local/lib64 /usr/lib64 这些针对64位的库文件路径加进去。 采用下面的方法。 添加搜索路径到配置文件 echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf 然后 更新配置 ldconfig -v 再次执行 编译 成功 执行安装: make && make install 报错: /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory 解决: cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h 1 安装成功: 复制配置文件: cp php.ini-production /usr/local/php/lib/php.ini cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf ln -s /usr/local/php/sbin/php-fpm /usr/local/bin 修改配置: cd /usr/local/php/etc/php-fpm.d vim www.conf [www] //池子名 (pool) 设置 ;listen = /tmp/php-fcgi.sock // 监听的地址,可以监听socket ,也可以监听端口 listen = 127.0.0.1:8089 或者这样写,php-fpm 通常在本地使用,php和nginx 通常在一台机器,所以可写127.0.0.1,别的机器 连接,需用本机ip listen.mode = 666 //sock 文件的权限 listen.owner = nobody listen.group = nobody user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024 加入 systemtl 服务: cd /usr/local/src/php-7.3.0beta1/sapi/fpm cp php-fpm.service /usr/lib/systemd/system/ 启动: systemctl start php-fpm systemctl status php-fpm -l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值