【问题标题】:Jetty 7.4.2 + Quercus 4.0.18: How can I read PHP files from outside the webapp directoryJetty 7.4.2 + Quercus 4.0.18:如何从 webapp 目录之外读取 PHP 文件
【发布时间】:2011-07-01 13:31:00
【问题描述】:

使用此代码...

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

public class OneWebApp
{
    public static void main(String[] args) throws Exception
    {
        String jetty_home = "C:/Software/jetty";

        Server server = new Server(8080);

        WebAppContext webapp = new WebAppContext();
        webapp.setContextPath("/");
        webapp.setWar(jetty_home+"/quercus-4.0.18.war");
        server.setHandler(webapp);

        server.start();
        server.join();
    }
}

... 我可以从 webapp 目录读取 PHP 文件:C:\Documents and Settings\mydir\Local Settings\Temp\jetty-0.0.0.0-8080-quercus-4.0.18.war-_-any- \网络应用程序

如何配置 Jetty 以在另一个目录中查找 PHP 文件?例如:C:\Projects\phpfiles

使用 Apache,我只需在配置中执行类似的操作:

Alias /phpfiles "C:\Projects\phpfiles"
<Directory C:\Projects\phpfiles>
   Order allow,deny
   Allow from all
   AllowOverride All
</Directory>

【问题讨论】:

  • 你到底需要做什么?
  • 我想从部署 Web 应用程序的临时目录之外提供 PHP 文件。我希望 Jetty 在不同的目录中查找 Web 资源。

标签: java php jetty quercus


【解决方案1】:

您可以将战争路径更改为:

[...]
webapp.setContextPath("/");
webapp.setWar("C:/Projects/phpfiles");
[...]

目录 phpfiles 需要包含 Web 应用程序的结构(最少包括 WEB-INF/web.xml)。您需要在 WEB-INF/lib 中包含 quercus 依赖项,或者只需在类路径中添加依赖项(因为它是嵌入的)。依赖关系和 web.xml 可以在 quercus-*.war 中找到。

如果你需要有多个 php 文件的源目录,我认为不支持。您需要扩展 QuercusServletImpl 并实现/覆盖 getPath(HttpServletRequest req)

【讨论】:

  • 我想在一个地方部署战争并从另一个地方拉取PHP文件,所以第一个选项不好。我会考虑扩展 QuercusServletImpl。
猜你喜欢
  • 1970-01-01
  • 2017-09-28
  • 2011-07-16
  • 2013-02-03
  • 2018-03-11
  • 2011-11-24
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多