Jochen: PHP und Java auf einem Server in unterschiedichen Verzeichnissen

Hallo Forum und Frohe Weihnachten!

ich möchte gern unter einer Domain einen Tomcat Server installieren, da hier hauptsählich ein Portal in Java laufen soll.

Die Frage ist: Wie sehe es aus, wenn ich standardmäßige PHP-Anwedungen wie Wordpress als CMS und Magento als Shop in dahinter liegenden Verzeichnissen PHP-Anwedungen installieren möchte:

www.domain.de
www.domain.de/inhalt_1 (z.B. Wordpress A)
www.domain.de/inhalt_2 (z.B. Wordpress B)
www.domain.de/shop (z.B. Magento)

Habt ihr einen Tipp, wie ich über Serverkonfigurationen Apache und Tomcat sauber voneinander trenne. Wohlgemerkt soll es keinen reinen Mix über eine Bridge oder ähnliches laufen, da die Verzeichnisse und ihre Unterverzeichnisse entweder auf PHP oder JAVA laufen.

DANKE für Antworten und Grüße!
Jochen

  1. Hallo,

    Habt ihr einen Tipp, wie ich über Serverkonfigurationen Apache und Tomcat sauber voneinander trenne. Wohlgemerkt soll es keinen reinen Mix über eine Bridge oder ähnliches laufen, da die Verzeichnisse und ihre Unterverzeichnisse entweder auf PHP oder JAVA laufen.

    Ganz ohne Bridge wird das nicht gehen:
    Du hast zwei verschiedene Server (Tomcat und Apache), beide Server brauchen einen eigenen Port
    (z.b. Apache Port 80, Tomcat 8080 wäre so eine Standard-Konfiguration).

    Du möchtest aber ja, dass die Server zwar unterschiedliche URLs bedienen, (z.b. Tomcat www.domain.de, Apache www.domain.de/inhalt_1), aber BEIDE unter dem HTTP-Standard-Port 80 erreichbar sind.

    Üblicherweise macht man das so, dass der Apache erstmal ALLE Anfragen verarbeitet, und dann die URLs für den Tomcat an diesen zur Weiterverarbeitung durchreicht. Hierzu hat der Tomcat entsprechende Connectoren (muss man ggf. in der Konfiguration anknippsen) und der Apache entsprechende Module: mod_ajp, mod_jk, mod_proxy.
    Details findest Du z.b. hier.

    Ich habe für diese Zwecke immer mod_ajp genutzt, und damit gute Erfahrungen gemacht, aber das müsstest Du Dir ggf. mal im Detail anschauen, was da für Deinen Usecase das beste ist.

    Viele Grüße,
    Jörg

    1. Üblicherweise macht man das so, dass der Apache erstmal ALLE Anfragen verarbeitet, und dann die URLs für den Tomcat an diesen zur Weiterverarbeitung durchreicht. Hierzu hat der Tomcat entsprechende Connectoren (muss man ggf. in der Konfiguration anknippsen) und der Apache entsprechende Module: mod_ajp, mod_jk, mod_proxy.
      Details findest Du z.b. hier.

      Hallo Jörg,

      danke... das bringt mich weiter - auch wenn ich hoffte, keine Bridge zu brauchen, da ich befürchte, dass der Apache Performanceeinbußen schlucken muss.

      Wie sieht das bei Dir aus? Hast Du im Vergleich zu einem "reinen" Apache/Tomcat mit Blech nachhelfen müssen - der Server muss ca. 150 bis 200 Requests pro Sekunde verarbeiten können?

      Subdomains wären auch eine Lösung... aber unschön.

      Viele Grüße
      Jochen

      1. Hi,

        danke... das bringt mich weiter - auch wenn ich hoffte, keine Bridge zu brauchen, da ich befürchte, dass der Apache Performanceeinbußen schlucken muss.

        Die Alternative wäre, *einen* Webserver beides – PHP und Java – ausführen und ausliefern zu lassen.

        MfG ChrisB

        --
        Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
  2. Hallo Forum und Frohe Weihnachten!

    Habt ihr einen Tipp, wie ich über Serverkonfigurationen Apache und Tomcat sauber voneinander trenne. Wohlgemerkt soll es keinen reinen Mix über eine Bridge oder ähnliches laufen, da die Verzeichnisse und ihre Unterverzeichnisse entweder auf PHP oder JAVA laufen.

    Bei meinem Perl/PHP-Framework erfolgt die Trennung über Rewrite und eine Vereinbarung:
      *.htm  => PHP
      *.html => Perl

    Das setzt natürlich voraus, dass der Webserver beide PLs unterstützt, was beim Apache der Fall ist. Dem Programmierer ist es so freigestellt, ob er eine Anwendung in PHP entwickelt oder in Perl, anhand der Seite selbst ist kein Unterschied zu sehen, das geht nahtlos ineinander über. Welchen Content-Type eine Response hat, bestimmt ja einzig der Response-Header und nicht die Erweiterung (z.B. kann unter /foo.html auch eine PDF ausgeliefert werden).

    MfG