Jetty 7.4.2 + Quercus 4.0.18: как я могу читать файлы PHP из вне каталога webapp

Используя этот код...

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();
    }
}

... Я могу читать файлы PHP из каталога веб-приложения: C:\Documents and Settings\mydir\Local Settings\Temp\jetty-0.0.0.0-8080-quercus-4.0.18.war-_-any-\webapp

Как я могу настроить Jetty для поиска файлов PHP в другом каталоге? Например: C:\Projects\phpfiles

С Apache я бы просто сделал что-то подобное в конфиге:

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

1 ответ

Вы можете изменить путь войны на:

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

Каталог phpfiles должен содержать структуру веб-приложения (минимально включать WEB-INF / web.xml). Вам нужно будет либо включить зависимости quercus в WEB-INF/lib, либо просто добавить зависимости в ваш путь к классам (поскольку он встроен). Зависимости и web.xml можно найти в quercus-*. War.

Если вам нужно иметь несколько исходных каталогов php-файлов, я не думаю, что это поддержка. Вам нужно будет расширить QuercusServletImpl и реализовать / переопределить getPath (HttpServletRequest req).

Другие вопросы по тегам