【问题标题】:PHP in TOMCAT 6 - ExceptionTOMCAT 6 中的 PHP - 异常
【发布时间】:2015-02-25 09:16:26
【问题描述】:

我一直在尝试将PHP 集成到APACHE TOMCAT 6 中,方法是关注second answer 以获取QUESTION 在 TOMCAT 6 中运行 PHP 应用程序。我遇到了配置问题。

  1. 首先我得到了异常java.lang.UnsatisfiedLinkError: no php5srvlt in java.library.path。我通过将php5srvlt.jar(在step 12 中生成)放置在tomcat\lib 中解决了这个问题。

  2. 之后我面对

    java.lang.UnsatisfiedLinkError: net.php.servlet.send(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Z)V
    net.php.servlet.send(Native Method)
    net.php.servlet.service(servlet.java:190)
    net.php.servlet.service(servlet.java:214)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    

    例外。

我试图为此找到解决方案,但只能接近这个QUESTION。但是,我不想再做一次整件事,因为我已经尝试过好几次了。我尝试使用 TOMCAT 8.0.15,但失败了。现在,只是按照我已安装 TOMCAT 6 并尝试集成 PHP 的说明进入接收器。

我正在为 tomcat/webapps/PHP/test.php 的请求放置日志文件。

LOCALHOST.YYYY-MM-DD.log

Dec 29, 2014 12:15:46 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet php threw exception
java.lang.UnsatisfiedLinkError: net.php.servlet.send(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Z)V
at net.php.servlet.send(Native Method)
at net.php.servlet.service(servlet.java:190)
at net.php.servlet.service(servlet.java:214)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1778)
at java.lang.Thread.run(Thread.java:744)

TEST.PHP

<?php 
echo "HELLO WORLD";
?>

编辑

我误以为我得到了problem 1,因为我在tomcat/lib 中没有php5srvlt.jar。但是,实际上,problem 1 在我启动服务器后第一次请求页面时出现。后来我看到problem 2

我从here 了解到,php 和 pecl 版本必须相同,但即使在使用相同的版本号 5.2.5 后,我仍然会遇到相同的错误

【问题讨论】:

    标签: php tomcat


    【解决方案1】:

    错误消息indicates that you're missing .dll-files 是这样一个脆弱的装置所必需的。

    当应用程序尝试加载原生库(如 Linux 中的 .so、Windows 中的 .dll 或 Mac 中的 .dylib)并且该库不存在时,将引发 UnsatisfiedLinkError。

    但是,请重新考虑一下您实际在做什么。 (几乎)没有充分的理由在 Tomcat 中运行 PHP 上下文。

    【讨论】:

    • 我实际上是在尝试在我的 apache tomcat 服务器上运行 php 文件来响应 ajax 调用。我没有将回显消息返回给 responseText,而是得到了整个文件。因此,我认为我应该有一个 php 解析器,以便只有回显消息会返回给我。如果这不是一个好方法,我该怎么做?
    • 在合适的上下文中运行 PHP,可以使用 Apache 和 FCGI/mod_php,也可以使用 nginx + php-fpm 或其他选项。 PHP 不是为在 Tomcat 中运行而编写或测试的。使用 Tomcat 作为基于 Java 的应用程序的应用程序服务器,这就是它的用途。
    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2012-07-03
    • 2014-03-30
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    相关资源
    最近更新 更多