Apache mit Tomcat (8080) und PHP (80)

svenbartak

New Member
Hallo zusammen,

der Titel ist hoffentlich aussagekräftigt genug.

Kurze Erläuterung zur IST-Situation.
Ich besitze einen Root-Server mit der Linux Distribution "openSuse". Als Webserver wird, wie üblich, ein Apache-Webserver genutzt.

Als Beispiel nehme ich jetzt meine Domain: Exquisite webdesign and special IT solutions | www.svenbartak.de

Alle Anfragen über den Standardport 80 laufen beim Apache durch die PHP-Engine (Hoffe das ist so korrekt ausgedrückt).

Nun habe ich mir die Servlet-Engine Tomcat installiert und eingerichtet - gelauscht wird auf Port 8080.

Jetzt komm meine Frage :)

Ist es möglich den Apache/Tomcat/PHP so einzurichten, dass die URI Exquisite webdesign and special IT solutions | www.svenbartak.de an den PHP Interpreter kommt und eine andere Domain direkt an die Servletengine geht?

z.B.

Exquisite webdesign and special IT solutions | www.svenbartak.de -> PHP Engine
Gabelstaplerfahrer Schulungen Steckel | www.staplerschein.de -> Servlet Engine

Beide Domains sind am DNS des Servers registriert und als VHosts separiert verwaltet.

Hoffe ihr versteht was ich meine ...

Gruß Sven
 
Hallo,

erstmal vielen Dank für Deine Antwort.

Die von Dir genannten Links haben soweit geholfen das ich jetzt auf einem Ordner A php Skripte und auf einem Ordner B jsps aufrufen kann.

Jedoch ist die "Ordner" Lösung für meinen Fall unschön. Ich würde gerne ne ganze Domain an den Tomcat verfüttern und alle anderen Domains an den PHP Interpreter.

Hoffe Du verstehst was ich meine.

Gruß Sven
 
Leite Ordner "/" zu Tomcat um:
Code:
<VirtualHost *>
[...]
JkMount / ajp13
JkMount /* ajp13
</VirtualHost>
 
Hallo HornOx,

also grundsätzlich erstmal danke.
Auf meinem lokalen System funktioniert alles wunderbar allerdings geht es mal wieder nicht auf dem produktiven Systemen.

Ich muss erst einmal den Apache Tomcat Connector installieren und genau hier bekomme ich schon die ersten Probleme.

Ich habe mir das aktuelleste Paket vom Repository gezogen.

Das eingeben der folgenden Zeile bewirkt folgende Fehlermeldung...

Code:
./configure --with-apxs=/usr/sbin/apxs

Code:
checking build system type... x86_64-suse-linux
checking host system type... x86_64-suse-linux
checking target system type... x86_64-suse-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for test... /usr/bin/test
checking for rm... //bin/rm
checking for grep... //bin/grep
checking for echo... //bin/echo
checking for sed... //bin/sed
checking for cp... //bin/cp
checking for mkdir... //bin/mkdir
need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
configure: error: Invalid location for apxs: '/usr/sbin/apxs'

Auch die folgende Variante

Code:
./configure --with-apxs2=/usr/sbin/apxs2

Code:
checking build system type... x86_64-suse-linux
checking host system type... x86_64-suse-linux
checking target system type... x86_64-suse-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for test... /usr/bin/test
checking for rm... //bin/rm
checking for grep... //bin/grep
checking for echo... //bin/echo
checking for sed... //bin/sed
checking for cp... //bin/cp
checking for mkdir... //bin/mkdir
no apxs given
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for a sed that does not truncate output... //bin/sed
checking for grep that handles long lines and -e... (cached) //bin/grep
checking for egrep... //bin/grep -E
checking for ld used by gcc... /usr/x86_64-suse-linux/bin/ld
checking if the linker (/usr/x86_64-suse-linux/bin/ld) is GNU ld... yes
checking for /usr/x86_64-suse-linux/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... gfortran
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether gfortran accepts -g... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/x86_64-suse-linux/bin/ld -m elf_x86_64
checking if the linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gfortran option to produce PIC... -fPIC
checking if gfortran PIC flag -fPIC works... yes
checking if gfortran static flag -static works... yes
checking if gfortran supports -c -o file.o... yes
checking whether the gfortran linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
LIBTOOL="$(SHELL) $(top_builddir)/libtool"
checking for char... yes
checking size of char... 1
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 8
checking for short... yes
checking size of short... 2
checking for long double... yes
checking size of long double... 16
checking for long long... yes
checking size of long long... 8
checking for longlong... no
checking size of longlong... 0
checking size of pid_t... 4
checking for snprintf... yes
checking for vsnprintf... yes
checking for flock... yes
checking for setsockopt in -lsocket... no
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking whether to use SO_RCVTIMEO with setsockopt()... yes
checking whether to use SO_SNDTIMEO with setsockopt()... yes
checking for target platform... unix
no apache given
no netscape given
configure: error: Cannot find the WebServer

:confused: Kannst Du mir dabei ggf. weiterhelfen ?!

System: Suse 10 Enterprise, Apache 2.2.3

Gruß Sven
 
Ich habe schon lange nichts mehr mit Suse zu tun gehabt, vermutlich fehlt dir ein Apache2-devel Packet. Aber eigentlich sollte es auch für Suse schon fertige Packete für mod_jk geben.
Hallo HornOx, [...]
Kannst Du mir dabei ggf. weiterhelfen ?!
Es ist taktisch ungeschickt in einem Forum gezielt eine Einzelperson um Hilfe zu bitten - andere, besser geeignete Helfer könnten sich ausgeschlossen fühlen...
 
Guten Morgen,

Ich habe schon lange nichts mehr mit Suse zu tun gehabt, vermutlich fehlt dir ein Apache2-devel Packet. Aber eigentlich sollte es auch für Suse schon fertige Packete für mod_jk geben.Es ist taktisch ungeschickt in einem Forum gezielt eine Einzelperson um Hilfe zu bitten - andere, besser geeignete Helfer könnten sich ausgeschlossen fühlen...

danke für Deine Antwort.
Tut mir leid das ich eine direkte Anrede gewählt habe :-)

SLES 10 liefer den Apache httpd 2.2 mit, es liegt also nahe einfach mod_proxy_ajp - Apache HTTP Server zu benutzen.

vielen Dank auch an Dich.
Ich habe gerade via YAST nach dem Paket gesucht und musste feststellen, dass ich folgendes wohl schon installiert habe ...

Code:
mod_jk-ap20 - Konnektoren zwischen Apache 2.0 und Tomcat Servlet Container
Version: 4.1.30-8 Installiert: 1.2.15-42psa.sles10.build83071218.18 
Größe: 143.3 K Medium Nr.: 1                                                       
Lizenz: Other License(s), see package                                       
Paketgruppe: Productivity/Networking/Web/Frontends             
Enthält: mod_jk.so()(64bit), mod_jk == 4.1.30-8, mod_jk-ap20 == 4.1.30-8

Jetzt stellt sich mir die Frage wie ich das o.g. nutzen kann :confused:

Gruß Sven
 
Jetzt stellt sich mir die Frage wie ich das o.g. nutzen kann :confused:
Wenn das Paket bereits installiert ist und das Modul so wie es gebaut ist mit dem Apache httpd 2.2 zusammenarbeitet, brauchst du einfach eine entsprechende LoadModule Anweisung in deiner httpd.conf und eben die passende Konfiguration in dem gewünschten VirtualHost.

Ansonsten gibt es für den gleichen Zweck das bereits genannte mod_proxy_ajp, das offiziell beim Apache httpd 2.2 enthalten ist.
 
... brauchst du einfach eine entsprechende LoadModule Anweisung in deiner httpd.conf und eben die passende Konfiguration in dem gewünschten VirtualHost.

Ich denke, unter SLES muss das Mdoul ebenso in der /etc/sysconfig/apache Module="" eingetragen werden. die Includes werden ggf. überschrieben.

So hält man sich wenigstens an die Suse Vorgabe.
 
Hallo zusammen,

ich habe es jetzt mal probiert und wieder nicht hinbekommen - ich werf die Flinte ins Korn - dann wird halt die Seite mit PHP realisiert :(

Danke dennoch für eure starke Hilfe.

Gruß Sven
 
Back
Top