Toon posts:

[Debian] Apache2, Tomcat en PHP4

Pagina: 1
Acties:
  • 232 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb op mijn debian box een servertje neergezet die debian testing draait. Die doet het prima. SSH, really great. Apache, draait prima. PHP doet het ook. En sinds kort zelfs Tomcat (met mod_jk (eigen compile)). Maar nu heb ik dus aan de hand van deze tutorial de boel opgezet. Werkt prima, maar het zorgt ervoor dat ik twee directories heb: één standaard, van apache, in /var/www/, die de php engine ook gebruikt, en /usr/local/tomcat/webapps/, waarin de JDK JSP en servlets uitvoert. graag zou ik deze directories willen samenvoegen, maar hoe pak ik dit veilig (en vooral simpel) aan? Het is geen professionele server die 100% capaciteit moet draaien, dus een klein omweggetje mag best.
Bij voorbaat dank.
Btw: specs:
OS: Debian testing (etch)
Apache: 2.0.55
PHP: 4:4.4.2-1
Tomcat: 5.5.17
JDK: 1.5.0.07-linux-i586
mod_jk: 1.2.15 (source->zelf gecompileerd)
meer specs nodig? vraag!

Verwijderd

Topicstarter
ik heb nu van /var/www een symbolische link gemaakt naar /usr/local/tomcat/webapps. ook heb ik de inhoud van de oude /var/www naar /usr/local/tomcat/webapps gekopieerd. werkt prima, php en html bestanden doen het. maar zodra ik een jsp start geeft hij een 503 fout.

  • Joove
  • Registratie: Januari 2001
  • Nu online
Maar op deze manier maak je natuurlijk geen gebruik van die mod_jk.

Ik heb voor m'n werk gekeken naar apache samen te laten werken met tomcat.

Neem aan dat je Tomcat kan benaderen op port 8080?

Je moet listeners toevoegen aan je server.xml en dan zal Tomcat zodra je via port 8080 aan roept een mod_jk.conf aanmaken in $tomcat/conf/auto en dan moet jij een worker.properties aanmaken in $tomcat/conf/jk. (Weet ff niet meer welke tut ik heb gebruikt, maar dit zorgt er voor dat alles geautomatisserd gaat.)

Kijk eens hier: http://tomcat.apache.org/connectors-doc/howto/apache.html
of hier is het duidelijker:
http://www.onjava.com/pub.../11/20/tomcat.html?page=2

Als je er niet uitkomt zal ik morgen ff op werk in de handleiding kijken die ik heb geschreven

[ Voor 9% gewijzigd door Joove op 25-07-2006 23:00 ]


Verwijderd

Topicstarter
oh, ik heb wat gecombineerd met andere tutorials. dit is het belangrijke (en enige veranderde) deel van de configuratie van apache:
(apache2.conf)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ----------------
# Mod_JK inclusion
# ----------------
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

# Where to find workers.properties
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log lever [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KET SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Send servlet for context / jsp-example to worker named worker1
JkMount /jsp-examples worker1
# Send JSPs for context /jsp-examples/ to worker named worker1
JkMount /jsp-examples/ worker1
JkMount /*.jsp worker1
JkMount /*.jspx worker1

en dan is worker1 natuurlijk van tomcat.


edit: nee, kan niet verbinden op 8080. maar dat heb ik vast zelf ooit uitgezet (zou ik even naar moeten zoeken). een mod_jk.conf bestand heb ik niet. ik ga nog even goed kijken naar die officiële handleiding

[ Voor 11% gewijzigd door Verwijderd op 25-07-2006 23:26 ]


Verwijderd

Zou je je worker.properties file kunnen posten, hierin wordt aangegeven op welke worker apache connect.

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
workers.tomcat_home=/usr/lib/apache-tomcat
workers.java_home=/usr/lib/jdk
ps=/
worker.list=worker1

worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

Verwijderd

Probeer het eens met deze worker configuratie

code:
1
2
3
4
5
6
7
8
9
workers.tomcat_home=/usr/lib/apache-tomcat
workers.java_home=/usr/lib/jdk
ps=/
worker.list=worker1

worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

Verwijderd

Topicstarter
nou krijg ik ipv een 503 een 404 fout, terwijl dat bestand toch echt bestaat

Verwijderd

Ik zie dat je bijvoorbeeld JkMount /*.jspx doet. Krijg je als 404 een pagina op dat niveau benaderd ? Want waarschijnelijk gaat het op dit niveau niet werken. Controleer ook even of het op het hier wel werkt /jsp-examples/.

Verwijderd

Topicstarter
inderdaad, daar werkt het wel. hoe komt dit?

Verwijderd

Verwijderd schreef op woensdag 26 juli 2006 @ 14:25:
inderdaad, daar werkt het wel. hoe komt dit?
Om eerlijk te zijn heb ik geen idee, maar ik vermoed dat het een limitatie is van mod_jk

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 26 juli 2006 @ 14:40:
[...]


Om eerlijk te zijn heb ik geen idee, maar ik vermoed dat het een limitatie is van mod_jk
kan het te maken hebben met dat de url (bijv. geen flauw idee) wordt doorgegeven zonder beginnende / als het slechts een bestand ophalen betreft die niet in een map staat?
dwz:
GET test.jsp HTTP/1.1
GET /jsp-examples/test.jsp HTTP/1.1

Verwijderd

Het zou kunnen dat zou betekenen dat je het met de volgende regel zou kunnen oplossen in je apache config

JkMount *.jsp worker1

Alle GET methode worden nu afgevangen door worker1 zeg je hiermee

Verwijderd

Topicstarter
en dat kan dan weer niet, want van tomcat of mod_jk ofzo MOET de mount starten met een /

Verwijderd

Ik heb hetzelfde ook gehad heb het uiteindelijk met een redirect opgelost. Niet heel erg netjes, maar wel pragmatisch

Verwijderd

Topicstarter
een redirect van / naar bijv. /servlets/ ?

Verwijderd

Verwijderd schreef op woensdag 26 juli 2006 @ 16:02:
een redirect van / naar bijv. /servlets/ ?
Kan, maar meestal redirect ik naar de jsp pagina directory toe en servlets plaats ik altijd in een aparte directory. (Heb het met een redirect in apache gedaan)
Pagina: 1