[Lenya Wiki] Update of "HowToJettyInstall" by PetteriSu lonen
Apache Wiki <[email protected]>
| Newsgroups | gmane.comp.cms.lenya.devel |
|---|---|
| Message-ID | <[email protected]> |
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Lenya Wiki" for change notification.
The "HowToJettyInstall" page has been changed by PetteriSulonen.
http://wiki.apache.org/lenya/HowToJettyInstall
--------------------------------------------------
New page:
= Running Lenya 2 in Jetty 6 with Apache 2 =
While the standalone build of Lenya is good to get started with, it's not really good enough for most production uses. This how-to explains how you can set up Lenya under a more typical production configuration, using Jetty 6 and Apache 2. The example commands are from Debian-style Linux distros; replace with your own if you're not on one.
== 1. Set up the environment ==
1. Install Java 6 JDK from Sun. OpenJDK isn't fully compatible with Batik, the image processing library used in Lenya:
. # aptitude install sun-java6-jdk
1. Install Jetty:
. # aptitude install jetty
1. Install Apache 2:
. # aptitude install apache2
1. Make sun-java your default JVM:
. Go to JAVA_HOME, e.g. /usr/lib/jvm and # ln -s java-6-sun default-java
1. Test run Jetty.
. # /etc/init.d/jetty start
...and surf to localhost:8080 (or whichever port Jetty is set to run on; some default installs have it at 8280).
'''Note: '''I had a problem with a misconfiguration out of the box; I had to comment out the line /etc/jetty/jetty-shared-webapps.xml in /usr/share/jetty/etc/jetty.conf. YMMV.
== 2. Set up Lenya ==
1. Build Lenya as per the instructions. Standalone or .war, doesn't matter.
1. Put lenya.war or [LENYA_SRC]/build/lenya/webapp under [JETTY_HOME]/webapps (rename webapp to lenya).
1. Copy or link [LENYA_SRC]/externals/cocoon_2_1_x/lib/endorsed/jakarta-regexp-1.5.jar under [JETTY_HOME]/lib/ext (or put it elsewhere on your classpath).
Start Jetty and surf to http://locahost:8080/lenya/. You should see the Lenya homepage.
== 3. Set up the proxy directives: ==
1. Enable mod_proxy and mod_proxy_http in Apache. For example, go to /etc/apache2/mods-enabled, and symlink to ../mods-available/proxy.load, ../mods-available proxy.conf, and ../mods-available/proxy_http.load.
1. Add your proxy confs to /etc/apache2/mods-available/proxy.conf.
'''Note: '''There are lots and lots of ways to set up apache2; this is sort of the simplest case. Check the httpd documentation for more.
Mine looks something like this (replace YOURPUB with your publication, naturally):
{{{
<IfModule mod_proxy.c>
# Turn off support for true Proxy behaviour as we are acting as
# a transparent proxy
ProxyRequests Off
# Turn off VIA header as we know where the requests are proxied
ProxyVia Off
# Turn on Host header preservation so that the servlet container
# can write links with the correct host and rewriting can be avoided.
ProxyPreserveHost On
# Set the permissions for the proxy
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
# Turn on Proxy status reporting at /status
# This should be better protected than: Allow from all
ProxyStatus On
<Location /status>
SetHandler server-status
Order Deny,Allow
Allow from all
</Location>
# Make the domain root go to the 'live' area of the YOURPUB publication
ProxyPass '' http://localhost:8080/lenya/YOURPUB/live
# Find the base resources used for authoring
ProxyPass /lenya http://localhost:8080/lenya
# Shorten the URL for authoring
ProxyPass /authoring http://localhost:8080/lenya/YOURPUB/authoring
# Lenya sets a session cookie for /lenya, but we need it at /
ProxyPassReverseCookiePath /lenya /
</IfModule>
}}}
Note the !ProxyPassReverseCookiePath directive -- you need one if you mess with the URI paths as above.
== 3. Configure your publication for these proxies ==
Edit [YOURPUB_HOME]/config/publication.xml and add the following to the <proxies> node:
{{{
<proxy area="live" ssl="false" url=""/>
<proxy area="authoring" ssl="false" url="/authoring"/>
}}}
You can also use full URL's, including the scheme and the domain, for the url attributes.
And that's about it.