在同一个应用程序中使用JSP和PHP

时间:2014-01-03 18:52:20

标签: php apache jsp tomcat

我的申请基于PHP。现在我想整合一个用JSP编写的网络记者。所以,我有一个Apache HTTP Server和一个用PHP编写的应用程序。我甚至安装了Tomcat来提供JSP个文件,它在8080端口运行良好。我也得到了mod_jk.so并在LoadModule jk_module modules/mod_jk.so文件中添加了一行httpd.conf,但我仍无法从我的应用程序文件夹(端口80)运行JSP个文件。我想,应该对httpd.conf文件进行额外的调整,但我不知道应该做些什么。

修改的 我的workers.properties看起来与此完全相同

JkWorkerProperty worker.list=ajp13w
JkWorkerProperty worker.ajp13w.type=ajp13
JkWorkerProperty worker.ajp13w.host=localhost
JkWorkerProperty worker.ajp13w.port=8009

我的uriworkermap.properties看起来像这样

/jsp/*=ajp13w

其中jsp是htdocs中的文件夹,包含jsp文件

最后,我的httpd.conf现在包含

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule jk_module modules/mod_jk.so

#AddModule     mod_jk.c
#JkWorkersFile C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/workers.properties
#JkMountFile   C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/uriworkermap.properties
JkLogFile     C:/Apache/logs/mod_jk.log
JkLogLevel    info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

每条注释行都无法启动服务器。

修改

我安装了较新版本的Tomcat - Tomcat 8.0,但问题仍未解决。

修改

通过此链接apache.org判断,可以通过更改server.xml(tomcat)和httpd.conf(关于虚拟主机)的一些更改来解决问题。但是,就像这个世界上的所有,本文没有提供任何具体的例子。

修改

我向前迈了一步。导致无法运行服务器的最愚蠢的错误是引号。因此httpd.conf - JkWorkersFile C:/Program Files/Apache Software Foundation/Tomcat 8.0/conf/workers.properties中的这一行给了我一个错误,但经过三个小时的斗争后,结果却是JkWorkersFile "C:/Program Files/Apache Software Foundation/Tomcat 8.0/conf/workers.properties"。所以,现在它运行了。但是,当我转到localhost/jsp/index.jsp时,我现在看到 Apache Tomcat error reportHTTP Status 404 - /jsp/index.jsp 。这似乎是最后一个错误,但我仍然不知道如何解决它。

修改

现在我看到它有效。虽然,我得到了一个意外的行为。我以为我可以将JSP文件放在htdocs文件夹中,但事实证明,它们应放在tomcat中。

1 个答案:

答案 0 :(得分:1)

用于最小化设置。

workers.properties文件示例:

# Minimal jk configuration
JkWorkerProperty worker.list=ajp13w
JkWorkerProperty worker.ajp13w.type=ajp13
JkWorkerProperty worker.ajp13w.host=localhost
JkWorkerProperty worker.ajp13w.port=8009   

8009是mod_jk在将请求转发给Tomcat时用于在HTTPD和Tomcat之间进行通信的默认端口。如果你在这里更改它,你也必须在Tomcat的server.xml中更改它。

uriworkermap.properties文件示例:

/my_tomcat_app_to_expose_to_httpd/*=ajp13w

*有一个文件扩展名过滤器。 *对于所有文件,* .jsp仅用于jsp文件等。

此处列出的任何应用都将通过HTTPD提供。

在httpd.conf中你需要:

LoadModule    jk_module  libexec/mod_jk.so
AddModule     mod_jk.c
JkWorkersFile /config_location/workers.properties
JkMountFile   /config_location/uriworkermap.properties
JkLogFile     /log_location/mod_jk.log
JkLogLevel    info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "