You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by gr...@apache.org on 2005/04/24 16:10:32 UTC
svn commit: r164477 [3/3] - in /lenya/site: ./ 1_2_x/ 1_2_x/tutorial/
1_2_x/tutorial/images/ community/
Added: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.html
URL: http://svn.apache.org/viewcvs/lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.html?rev=164477&view=auto
==============================================================================
--- lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.html (added)
+++ lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.html Sun Apr 24 07:10:31 2005
@@ -0,0 +1,677 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.6">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Part 6a: mod_proxy and Lenya</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> > <a href="http://lenya.apache.org/">lenya</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://lenya.apache.org"><img class="logoImage" alt="Lenya" src="../../images/apache-lenya-light.png" title="
+ Apache Lenya is a Java-based Open-Source Content Management System.
+ It is based on open standards such as XML and XSLT.
+ One of its core components is Cocoon from the Apache Software Foundation.
+ "></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href=""></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="lenya.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with :');" value="Search the site with :" size="25" name="q" id="query" type="text">
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../1_4/index.html">Version 1.4</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../../1_2_x/index.html">Version 1.2</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../community/index.html">Community</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs"></div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript" language="JavaScript"><!--
+ document.write("Published: " + document.lastModified);
+ // --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Version 1.2</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../../1_2_x/index.html">Index</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.2', '../../skin/')" id="menu_1.1.2Title" class="menutitle">Installation</div>
+<div id="menu_1.1.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/index.html">Download</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/subversion.html">Subversion Access</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/source_version.html">Install Instructions</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.3', '../../skin/')" id="menu_selected_1.1.3Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Tutorial</div>
+<div id="menu_selected_1.1.3" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/index.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/understanding_lenya.html">1. Understanding Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/installing_lenya.html">2. Installing Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/anatomy_of_the_pipeline.html">3. Anatomy of the Pipeline</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/editing_in_lenya.html">4. Editing in Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/custom_navigation.html">5. Custom Navigation in Lenya</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">6a. Mod Proxy and Lenya</div>
+<div class="menupageitemgroup">
+<div class="menupageitem">
+<a title="
+ Getting Lenya installed under the ROOT context" href="#getting_lenya_installed_under_the_ROOT_context">
+ Gettin...</a>
+</div>
+<div class="menupageitem">
+<a href="#a_caveat_on_SSL">A caveat on SSL</a>
+</div>
+<div class="menupageitem">
+<a title="Authoring
+ environment" href="#authoring_environment">Authoring
+ e...</a>
+</div>
+<div class="menupageitem">
+<a href="#next_part">Next part</a>
+</div>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/mod_proxy_and_lenya_continued.html">6b. Mod Proxy and Lenya</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4', '../../skin/')" id="menu_1.1.4Title" class="menutitle">Components</div>
+<div id="menu_1.1.4" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.4.1', '../../skin/')" id="menu_1.1.4.1Title" class="menutitle">Access Control</div>
+<div id="menu_1.1.4.1" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/terms.html">Basic Terms</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accesscontrollers.html">Access Controllers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accesscontrollerresolvers.html">Access Controller Resolvers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/authenticators.html">Authenticators</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/authorizers.html">Authorizers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/policymanagers.html">Policies and Policy Managers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accreditablemanagers.html">Accreditable Managers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/ssl.html">SSL Encryption</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.2', '../../skin/')" id="menu_1.1.4.2Title" class="menutitle">Authoring</div>
+<div id="menu_1.1.4.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/adding-document-creator.html">Adding a new document creator</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/image-upload.html">Image Upload</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/openoffice.html">OpenOffice</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.3', '../../skin/')" id="menu_1.1.4.3Title" class="menutitle">Deployment</div>
+<div id="menu_1.1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/deployment/proxying.html">Proxying</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.4', '../../skin/')" id="menu_1.1.4.4Title" class="menutitle">Editors</div>
+<div id="menu_1.1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/htmlform.html">HTML Form Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/1form.html">HTML One Form Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/bxe.html">Bitflux Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/kupu.html">Kupu</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/xopus.html">Xopus</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.5', '../../skin/')" id="menu_1.1.4.5Title" class="menutitle">Layout</div>
+<div id="menu_1.1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/navigation.html">Navigation</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/xhtml-templating.html">XHTML templating</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/static-resources.html">Serving static resources</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/lenya-menubar.html">Lenya Menubar</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.6', '../../skin/')" id="menu_1.1.4.6Title" class="menutitle">Publication</div>
+<div id="menu_1.1.4.6" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/publication/pageenvelopemodule.html">PageEnvelopeModule</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/publication/siteTree.html">Site tree</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.7', '../../skin/')" id="menu_1.1.4.7Title" class="menutitle">Resource Types</div>
+<div id="menu_1.1.4.7" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/resource-types/resource-types.html">Resource Types</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.8', '../../skin/')" id="menu_1.1.4.8Title" class="menutitle">Revision Control</div>
+<div id="menu_1.1.4.8" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/revisioncontroller.html">Revision Controller</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/rcml.html">RCML</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/checkin.html">Check In</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/checkout.html">Check Out</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/version.html">Revisions</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/rollback.html">Rollback</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.9', '../../skin/')" id="menu_1.1.4.9Title" class="menutitle">Repository</div>
+<div id="menu_1.1.4.9" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/repository/webdav.html">WebDAV Servers</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.10', '../../skin/')" id="menu_1.1.4.10Title" class="menutitle">Search</div>
+<div id="menu_1.1.4.10" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/search/lucene.html">Searching with Lucene</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.11', '../../skin/')" id="menu_1.1.4.11Title" class="menutitle">URI Handling</div>
+<div id="menu_1.1.4.11" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/URIParametrizer.html">URI Parametrizer</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/standardURI.html">URI Scheme</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/usecases.html">Usecases</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.12', '../../skin/')" id="menu_1.1.4.12Title" class="menutitle">Asset Management</div>
+<div id="menu_1.1.4.12" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/asset-management/management.html">Asset Management</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.13', '../../skin/')" id="menu_1.1.4.13Title" class="menutitle">Link Management</div>
+<div id="menu_1.1.4.13" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/link-management/link-management.html">Link Management</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.14', '../../skin/')" id="menu_1.1.4.14Title" class="menutitle">Meta Data</div>
+<div id="menu_1.1.4.14" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/metadata/metadata.html">Meta Data Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.15', '../../skin/')" id="menu_1.1.4.15Title" class="menutitle">Multilingual Documents</div>
+<div id="menu_1.1.4.15" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/multilingual/multilingual.html">Multilingual Document Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.16', '../../skin/')" id="menu_1.1.4.16Title" class="menutitle">Tasks</div>
+<div id="menu_1.1.4.16" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/concept.html">The Task Concept</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/defining.html">Defining Tasks</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/taskaction.html">The TaskAction</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/scheduling.html">Scheduling a Task</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.16.5', '../../skin/')" id="menu_1.1.4.16.5Title" class="menutitle">Included tasks</div>
+<div id="menu_1.1.4.16.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/anttask.html">AntTask</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/publisher.html">DefaultFilePublisher</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/exporter.html">StaticHTMLExporter</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/mailtask.html">MailTask</a>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/development.html">Developing Tasks</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.17', '../../skin/')" id="menu_1.1.4.17Title" class="menutitle">Workflow</div>
+<div id="menu_1.1.4.17" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/terms.html">Terms</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/state-machine.html">The State Machine</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/configuration.html">Configuration</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/implementation.html">Implementation</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.18', '../../skin/')" id="menu_1.1.4.18Title" class="menutitle">Site Management</div>
+<div id="menu_1.1.4.18" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/archive.html">Archive</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/copy.html">Copy</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/deactivate.html">Deactivate</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/delete.html">Delete</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/deletetrash.html">Delete the trash</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/move.html">Move</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/moveupdown.html">Move Up/Down</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/rename.html">Rename</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/restore.html">Restore</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.5', '../../skin/')" id="menu_1.1.5Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.1.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/namespaces.html">Namespaces</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/coding-guidelines.html">Coding Guidelines</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/unittests.html">Unit Tests</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/xinclude-processor.html">XInclude Processor</a>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../../apidocs/1.2/index.html">1.2 API (Javadoc)</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div id="skinconf-txtlink"></div>
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="mod_proxy_and_lenya.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a>
+</div>
+<h1>Part 6a: mod_proxy and Lenya</h1>
+
+<p>We had mentioned that we were going to do articles on usecases and doctypes, but as we were
+ reconfiguring the newest version of Lenya (1.2.3 as of this writing) to be
+ installed under the ROOT context of Tomcat, we were again interested in going back
+ and fixing up our mod_proxy configurations so that the following would
+ happen:</p>
+
+
+<ul>
+
+<li>You can access the authoring environment with
+ http://lenya.client.com/</li>
+
+<li>Any login requests to and subsequent usages of the authoring environment
+ are redirected to SSL for better security (no real certificate needed,
+ since just using it on inside)</li>
+
+<li>Each publication is a directory under one virtualhost for
+ http://www.client.com/, unless a new domain name or sub-domain name was
+ needed, like http://publication.client.com/, where a separate
+ virtualhost would be created pointing to that one publication</li>
+
+<li>A need for SSL pages on http://www.client.com/ (like form
+ submissions)</li>
+
+</ul>
+
+
+<p>It seemed like a lot to ask for, and we wasn't sure how to go about getting it done.
+ Lucky for us (or so we thought), Lenya's documentation has a
+ <a href="http://wiki.apache.org/lenya/HowToModProxy">page on
+ mod_proxy</a> for a very similar configuration. As always, however,
+ making sense of the documentation was harder than the actual configuration.
+ Here's our attempt at explaining just how to get the above setup working.</p>
+
+
+<a name="N10027"></a><a name="getting_lenya_installed_under_the_ROOT_context"></a>
+<h2 class="h3">
+ Getting Lenya installed under the ROOT context</h2>
+<div class="section">
+<p>So, we were trying to make things a little cleaner for ourself and having Lenya be
+ the only web application installed under Tomcat. To do this, you'll have to
+ change a couple things in your local.build.properies file before building
+ Lenya (see
+ <a href="installing_lenya.html"> installing Lenya</a> for more
+ information):</p>
+<ol>
+
+<li>Change the container from Jetty to Tomcat (new to
+ 1.2.3)
+ #web.app.server=Jettyweb.app.server=Tomcat</li>
+
+<li>Change the tomcat.webapps.dir line to the
+ following:tomcat.webapps.dir=${tomcat.home.dir}/webapps/ROOT</li>
+
+<li>Change the tomcat.cache.dir line to the
+ following:tomcat.cache.dir=${tomcat.home.dir}/work/Catalina/localhost</li>
+
+</ol>
+<p>While the last line may seem strange, our thinking here was that since we are only
+ using Tomcat for Lenya, if we ever reset Lenya, then we'll just clean out the
+ whole work directory before starting Tomcat again.</p>
+<p>Then install as always using ./build.sh. You'll have a shiny new
+ installation under the ROOT context, where you can now access Lenya with
+ http://lenya.client.com:8080/ (notice there's no 'lenya' at the end of
+ the URL now).</p>
+</div>
+<a name="N10045"></a><a name="a_caveat_on_SSL"></a>
+<h2 class="h3">A caveat on SSL</h2>
+<div class="section">
+<p>Yes, we know, there's always a caveat. Well, one thing the mod_proxy document
+ doesn't mention is that you can't have two different domains or sub-domains with
+ SSL ports opened on the same Apache instance and using the same IP address. For
+ example, if we want to host http://lenya.client.com/ and
+ http://www.client.com/ on the same Apache instance and they both have the same
+ IP address (this is Name-based Virtual Hosting in Apache), you would think you
+ could do this:</p>
+<pre class="code">
+ NameVirtualHost 192.168.1.100:80
+
+ <VirtualHost 192.168.1.100:80>
+ ServerName lenya.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:443>
+ ServerName lenya.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:80>
+ ServerName www.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:443>
+ ServerName www.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+ </pre>
+<p>But in fact, you can't. The explanation for it is
+ <a href="http://httpd.apache.org/docs-2.0/ssl/ssl_faq.html#vhosts2">
+ in Apache's documentation</a>. The way around this would be to either get
+ another IP address for www.client.com, or assign another port to
+ www.client.com's SSL connection (instead of using the default 443). So, in this
+ case, we are going to be using another IP address. To be perfectly honest, we are
+ actually going to split the authoring and live servers on to two physical
+ machines, but setting it up this way on one server using one Apache instance is
+ good enough for demonstration purposes.</p>
+</div>
+<a name="N10058"></a><a name="authoring_environment"></a>
+<h2 class="h3">Authoring
+ environment</h2>
+<div class="section">
+<p>So, for this first part, we want to be able to go to http://lenya.client.com/ and get
+ the first page of Lenya, where we can choose the publication we need to edit. Here's
+ what we have (it's nearly idential to the mod_proxy how-to document on Lenya's
+ website):</p>
+<pre class="code">
+ NameVirtualHost 192.168.1.100:80
+
+ <VirtualHost 192.168.1.100:80>
+ ServerName lenya.client.com
+ ServerAlias lenya
+ ProxyRequests Off
+ RewriteEngine On
+ RewriteLog logs/lenya.client.com.rewrite.log
+ RewriteLogLevel 0
+ RewriteRule ^/([^/\.]+)$ $1/ [R]
+ RewriteRule ^/([^/\.]+)/$ http://lenya.client.com/$1/authoring/index.html [R,L]
+ RewriteCond %{QUERY_STRING} lenya\.usecase=login(.*)
+ RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
+ RewriteRule ^/(.*) http://lenya.client.com:8080/$1 [P,L]
+ ProxyPassReverse / http://lenya.client.com:8080/
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:443>
+ ServerName lenya.client.com
+ ServerAlias lenya
+ ProxyRequests Off
+ RewriteEngine On
+ RewriteLog logs/ssl.lenya.client.com.rewrite.log
+ RewriteLogLevel 0
+ RewriteRule ^/([^/\.]+)$ $1/ [R]
+ RewriteRule ^/([^/\.]+)/$ http://lenya.client.com/$1/authoring/index.html [R,L]
+ RewriteRule ^/(.*) http://%{SERVER_NAME}:8080/$1 [P,L]
+ ProxyPassReverse / http://lenya.client.com:8080/
+ </VirtualHost>
+ </pre>
+<p>Let's step through this quickly. We setup our name-based virtual host for the IP
+ address assigned to lenya.client.com:</p>
+<pre class="code"> NameVirtualHost 192.168.1.100:80
+ </pre>
+<p>In the first virtual host (the non-SSL one on port 80), we give it a name of
+ lenya.client.com, keep proxy requests off (so that it's only a reverse proxy,
+ not a forwarding one), and then turn on the rewriting engine to enable to rewrite
+ URLs. We also setup a log for the rewrites, but since the log level is 0, it won't
+ actually log anything.</p>
+<p>The first group of RewriteRules are for convenience's sake, really. They match
+ everything after but up to the first forward slash that doesn't have a dot in it. In
+ other words, it's trying to match a directory, like this:</p>
+<pre class="code"> http://lenya.client.com/default
+ </pre>
+<p>If it matches, it resends it as
+ http://lenya.client.com/default/authoring/index.html, meaning that it
+ goes through the whole rigamarole of matching again inside the VirtualHost.
+ Well, whenever you access the authoring environment for the first time, Lenya
+ checks to see if there's a session of you being logged in. Since there probably
+ isn't, it forwards you an address where "lenya.usecase=login"
+ something-or-another is appended to it. And that's where the second group of
+ Rewrites comes in. See the RewriteCond? It checks to see if the query string of the
+ URL has that pattern. If it does, it send it off to the SSL portion (see the https?).
+ The rest of it gets sent back to the reverse proxy, where the content is grabbed
+ from port 8080 where Tomcat is installed.</p>
+<p>In the VirtualHost section for SSL on lenya.client.com, it's pretty much exactly
+ the same. If you try to hit the SSL port with just a directory, like so:</p>
+<pre class="code"> https://lenya.client.com/default
+
+ </pre>
+<p>It rewrites the URL as
+ http://lenya.client.com/default/authoring/index.html. Here, again, it
+ goes back to the first VirtualHost, and if you aren't logged in, it eventually
+ takes you back to the SSL portion of the site to login. Otherwise, it matches
+ everything and sends it through the reverse proxy on port 8080. So, once you login
+ through SSL, you stay in SSL for all your editing.</p>
+</div>
+<a name="N10082"></a><a name="next_part"></a>
+<h2 class="h3">Next part</h2>
+<div class="section">
+<p>This article turned out to be quite long, so the next time around, which should be
+ very shortly, we will post the second half on configuring the live server
+ mod_proxy config.
+ </p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth"> </div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright © 2002-2005 The Apache Software Foundation.</div>
+<div id="feedback">
+ Send feedback about the website to:
+ <a id="feedbackto" href="mailto:dev@lenya.apache.org?subject=Feedback%C2%A0for%C2%A01_2_x/tutorial/mod_proxy_and_lenya.html">dev@lenya.apache.org</a>
+</div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>
Propchange: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.pdf
URL: http://svn.apache.org/viewcvs/lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.pdf?rev=164477&view=auto
==============================================================================
Binary file - no diff available.
Propchange: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Added: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.html
URL: http://svn.apache.org/viewcvs/lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.html?rev=164477&view=auto
==============================================================================
--- lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.html (added)
+++ lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.html Sun Apr 24 07:10:31 2005
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.6">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Part 6b: mod_proxy and Lenya</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> > <a href="http://lenya.apache.org/">lenya</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://lenya.apache.org"><img class="logoImage" alt="Lenya" src="../../images/apache-lenya-light.png" title="
+ Apache Lenya is a Java-based Open-Source Content Management System.
+ It is based on open standards such as XML and XSLT.
+ One of its core components is Cocoon from the Apache Software Foundation.
+ "></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href=""></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="lenya.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with :');" value="Search the site with :" size="25" name="q" id="query" type="text">
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../1_4/index.html">Version 1.4</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../../1_2_x/index.html">Version 1.2</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../community/index.html">Community</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs"></div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript" language="JavaScript"><!--
+ document.write("Published: " + document.lastModified);
+ // --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Version 1.2</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../../1_2_x/index.html">Index</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.2', '../../skin/')" id="menu_1.1.2Title" class="menutitle">Installation</div>
+<div id="menu_1.1.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/index.html">Download</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/subversion.html">Subversion Access</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/source_version.html">Install Instructions</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.3', '../../skin/')" id="menu_selected_1.1.3Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Tutorial</div>
+<div id="menu_selected_1.1.3" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/index.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/understanding_lenya.html">1. Understanding Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/installing_lenya.html">2. Installing Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/anatomy_of_the_pipeline.html">3. Anatomy of the Pipeline</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/editing_in_lenya.html">4. Editing in Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/custom_navigation.html">5. Custom Navigation in Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/mod_proxy_and_lenya.html">6a. Mod Proxy and Lenya</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">6b. Mod Proxy and Lenya</div>
+<div class="menupageitemgroup">
+<div class="menupageitem">
+<a title="Live environment" href="#live_environment">Live environment...</a>
+</div>
+<div class="menupageitem">
+<a title="Modifying the publication proxy configuration" href="#modifying_the_publication_proxy_configuration">Modifying the publi...</a>
+</div>
+<div class="menupageitem">
+<a title="This concludes the test of the emergency broadcast system" href="#this_concludes_the_test_of_the_emergency_broadcast_system">This concludes the ...</a>
+</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4', '../../skin/')" id="menu_1.1.4Title" class="menutitle">Components</div>
+<div id="menu_1.1.4" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.4.1', '../../skin/')" id="menu_1.1.4.1Title" class="menutitle">Access Control</div>
+<div id="menu_1.1.4.1" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/terms.html">Basic Terms</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accesscontrollers.html">Access Controllers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accesscontrollerresolvers.html">Access Controller Resolvers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/authenticators.html">Authenticators</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/authorizers.html">Authorizers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/policymanagers.html">Policies and Policy Managers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accreditablemanagers.html">Accreditable Managers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/ssl.html">SSL Encryption</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.2', '../../skin/')" id="menu_1.1.4.2Title" class="menutitle">Authoring</div>
+<div id="menu_1.1.4.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/adding-document-creator.html">Adding a new document creator</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/image-upload.html">Image Upload</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/openoffice.html">OpenOffice</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.3', '../../skin/')" id="menu_1.1.4.3Title" class="menutitle">Deployment</div>
+<div id="menu_1.1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/deployment/proxying.html">Proxying</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.4', '../../skin/')" id="menu_1.1.4.4Title" class="menutitle">Editors</div>
+<div id="menu_1.1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/htmlform.html">HTML Form Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/1form.html">HTML One Form Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/bxe.html">Bitflux Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/kupu.html">Kupu</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/xopus.html">Xopus</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.5', '../../skin/')" id="menu_1.1.4.5Title" class="menutitle">Layout</div>
+<div id="menu_1.1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/navigation.html">Navigation</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/xhtml-templating.html">XHTML templating</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/static-resources.html">Serving static resources</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/lenya-menubar.html">Lenya Menubar</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.6', '../../skin/')" id="menu_1.1.4.6Title" class="menutitle">Publication</div>
+<div id="menu_1.1.4.6" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/publication/pageenvelopemodule.html">PageEnvelopeModule</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/publication/siteTree.html">Site tree</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.7', '../../skin/')" id="menu_1.1.4.7Title" class="menutitle">Resource Types</div>
+<div id="menu_1.1.4.7" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/resource-types/resource-types.html">Resource Types</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.8', '../../skin/')" id="menu_1.1.4.8Title" class="menutitle">Revision Control</div>
+<div id="menu_1.1.4.8" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/revisioncontroller.html">Revision Controller</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/rcml.html">RCML</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/checkin.html">Check In</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/checkout.html">Check Out</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/version.html">Revisions</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/rollback.html">Rollback</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.9', '../../skin/')" id="menu_1.1.4.9Title" class="menutitle">Repository</div>
+<div id="menu_1.1.4.9" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/repository/webdav.html">WebDAV Servers</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.10', '../../skin/')" id="menu_1.1.4.10Title" class="menutitle">Search</div>
+<div id="menu_1.1.4.10" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/search/lucene.html">Searching with Lucene</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.11', '../../skin/')" id="menu_1.1.4.11Title" class="menutitle">URI Handling</div>
+<div id="menu_1.1.4.11" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/URIParametrizer.html">URI Parametrizer</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/standardURI.html">URI Scheme</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/usecases.html">Usecases</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.12', '../../skin/')" id="menu_1.1.4.12Title" class="menutitle">Asset Management</div>
+<div id="menu_1.1.4.12" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/asset-management/management.html">Asset Management</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.13', '../../skin/')" id="menu_1.1.4.13Title" class="menutitle">Link Management</div>
+<div id="menu_1.1.4.13" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/link-management/link-management.html">Link Management</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.14', '../../skin/')" id="menu_1.1.4.14Title" class="menutitle">Meta Data</div>
+<div id="menu_1.1.4.14" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/metadata/metadata.html">Meta Data Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.15', '../../skin/')" id="menu_1.1.4.15Title" class="menutitle">Multilingual Documents</div>
+<div id="menu_1.1.4.15" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/multilingual/multilingual.html">Multilingual Document Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.16', '../../skin/')" id="menu_1.1.4.16Title" class="menutitle">Tasks</div>
+<div id="menu_1.1.4.16" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/concept.html">The Task Concept</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/defining.html">Defining Tasks</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/taskaction.html">The TaskAction</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/scheduling.html">Scheduling a Task</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.16.5', '../../skin/')" id="menu_1.1.4.16.5Title" class="menutitle">Included tasks</div>
+<div id="menu_1.1.4.16.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/anttask.html">AntTask</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/publisher.html">DefaultFilePublisher</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/exporter.html">StaticHTMLExporter</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/mailtask.html">MailTask</a>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/development.html">Developing Tasks</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.17', '../../skin/')" id="menu_1.1.4.17Title" class="menutitle">Workflow</div>
+<div id="menu_1.1.4.17" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/terms.html">Terms</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/state-machine.html">The State Machine</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/configuration.html">Configuration</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/implementation.html">Implementation</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.18', '../../skin/')" id="menu_1.1.4.18Title" class="menutitle">Site Management</div>
+<div id="menu_1.1.4.18" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/archive.html">Archive</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/copy.html">Copy</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/deactivate.html">Deactivate</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/delete.html">Delete</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/deletetrash.html">Delete the trash</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/move.html">Move</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/moveupdown.html">Move Up/Down</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/rename.html">Rename</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/restore.html">Restore</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.5', '../../skin/')" id="menu_1.1.5Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.1.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/namespaces.html">Namespaces</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/coding-guidelines.html">Coding Guidelines</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/unittests.html">Unit Tests</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/xinclude-processor.html">XInclude Processor</a>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../../apidocs/1.2/index.html">1.2 API (Javadoc)</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div id="skinconf-txtlink"></div>
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="mod_proxy_and_lenya_continued.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a>
+</div>
+<h1>Part 6b: mod_proxy and Lenya</h1>
+
+<p>One thing to note about the previous article: the last statement is indeed correct
+ if you don't make any changes to the publication.xconf file in the "config"
+ directory of your default publication. However, if you update it according to
+ the
+ <a href="http://wiki.apache.org/lenya/HowToModProxy">
+ HowToModProxy</a> document, after login, you'll be taken back to a non-SSL
+ connection for the rest of your editing.</p>
+
+
+<p>OK, now that the Authoring environment has been setup, we need to finish the Live
+ server setup.</p>
+
+
+<a name="N10018"></a><a name="live_environment"></a>
+<h2 class="h3">Live environment</h2>
+<div class="section">
+<p>The live environment, at least for this setup, is remarkably similar. Since
+ we're using the same Apache instance but a different IP address, just setup
+ another NameVirtualHost directive with the new IP address. We'll assume
+ that for every publication in Lenya, that will be a directory under our
+ domain name. So, say we have the following publications in our pubs
+ directory:</p>
+<pre class="code">
+ default -> Default Publication
+ weblog -> Lenya Weblog</pre>
+<p>Then we want to access them this way:</p>
+<pre class="code">
+ http://www.client.com/default/
+ http://www.client.com/weblog/</pre>
+<p>In the end, our setup for the live server should look like this:</p>
+<pre class="code">
+ NameVirtualHost 192.168.1.200:80
+
+ <VirtualHost 192.168.1.200:80>
+ ServerName www.client.com
+ ServerAlias www
+ ProxyRequests Off
+ RewriteEngine On
+ RewriteLog logs/www.client.com.rewrite.log
+ RewriteLogLevel 0
+ RewriteRule ^/([^/\.]+)$ $1/ [R]
+ RewriteRule ^/([^/\.]+)/$ $1/index.html [R]
+ RewriteRule ^/([^/\.]+)/live/(.*)$ $1/$2 [R,L]
+
+ # Rewrite for Lenya-wide resources (e.g. 404 page)
+ RewriteRule ^/lenya/(.*) http://www.client.com:8080/lenya/$1 [P]
+ RewriteRule ^/([^/\.]+)/(.*) http://www.client.com:8080/$1/live/$2 [P]
+ ProxyPassReverse / http://www.client.com:8080/
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.200:443>
+ ServerName www.client.com
+ ServerAlias www
+ ProxyRequests Off
+ RewriteEngine On
+ RewriteLog logs/ssl.www.client.com.rewrite.log
+ RewriteLogLevel 0
+ RewriteRule ^/([^/\.]+)$ $1/ [R]
+ RewriteRule ^/([^/\.]+)/$ $1/index.html [R]
+ RewriteRule ^/([^/\.]+)/live/(.*)$ $1/$2 [R,L]
+
+ # Rewrite for Lenya-wide resources (e.g. 404 page)
+ RewriteRule ^/lenya/(.*) http://www.client.com:8080/lenya/$1 [P]
+ RewriteRule ^/([^/\.]+)/(.*) http://%{SERVER_NAME}:8080/$1/live/$2 [P]
+ ProxyPassReverse / http://www.client.com:8080/
+ </VirtualHost>
+ </pre>
+<p>So, what's going on here? Well, to use the non-SSL virtualhost as an example,
+ we're simply matching for any directory and mapping it to it's live
+ counterpart. We add the rewrite for the 404 page (remember, this
+ installation is under the ROOT context, so some of the "lenya" directories
+ are missing) and then reverse proxy it to port 8080 as usual. Now, if you go to
+ http://www.client.com/default/, you get taken to the live site for the
+ default publication.</p>
+<p>There are some things that aren't good about this. For one, it doesn't take
+ into account the root directory (i.e., http://www.client.com/). It will
+ be served by Apache in the DocumentRoot instead of through Lenya. That may be
+ what you're looking for, but my guess is that your publications won't
+ directly match to their URLs. No problems - just be more specific. If you
+ wanted to map the http://www.client.com/ URL to the default publication,
+ then just use this instead:</p>
+<pre class="code">
+ RewriteRule ^/$ index.html [R]
+ RewriteRule ^/default/live/(.*)$ $1 [R,L]
+ RewriteRule ^/(.*) http://www.client.com:8080/default/live/$1 [P]
+ </pre>
+<p>Then reverse proxy as always. In configurations we've used, we just list each
+ publication we have that maps to a URL, so we know for certain that we are matching
+ everything we want to.</p>
+</div>
+<a name="N1003F"></a><a name="modifying_the_publication_proxy_configuration"></a>
+<h2 class="h3">Modifying the publication proxy configuration</h2>
+<div class="section">
+<p>There's one last thing that you'll want to do, and that's modifying the default
+ proxy settings in the publication's files itself so that you can switch between
+ SSL and non-SSL encrypted pages with ease. The start of the
+ <a href="http://wiki.apache.org/lenya/HowToModProxy">
+ HowToModProxy</a> document, as mentioned before, shows how to do this
+ really well. Using the
+ example above where the publications relate to their web address:</p>
+<pre class="code">
+ <proxy url="https://www.client.com/default" ssl="true" area="live"/>
+ <proxy url="http://www.client.com/default" ssl="false" area="live"/>
+ <proxy url="https://lenya.client.com/default" ssl="true" area="authoring"/>
+ <proxy url="http://lenya.client.com/default" ssl="false" area="authoring"/>
+ </pre>
+<p>WARNING! we haven't tried the above configuration because we don't have the
+ necessary resources to test it properly. Hopefully someone will test it and get
+ back to us on the results. According to the documentation on Lenya's website, it
+ should be correct.</p>
+</div>
+
+<a name="N10054"></a><a name="this_concludes_the_test_of_the_emergency_broadcast_system"></a>
+<h2 class="h3">This concludes the test of the emergency broadcast system</h2>
+<div class="section">
+<p>Well, that's it. There's obviously more that you can play with when it comes to
+ mod_proxy and general URLs, but we hope this is a springboard for more ideas and a
+ place to gather more resources on the subject. If you're ever stuck on mod_proxy
+ in general, you can visit
+ <a href="http://httpd.apache.org/docs-2.0/mod/mod_proxy.html">
+ Apache's documentation</a> on the subject, and as always, a post to the
+ Lenya user <a href="../../community/mailing-lists.html">mailing list</a> will most likely yield some answers.</p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth"> </div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright © 2002-2005 The Apache Software Foundation.</div>
+<div id="feedback">
+ Send feedback about the website to:
+ <a id="feedbackto" href="mailto:dev@lenya.apache.org?subject=Feedback%C2%A0for%C2%A01_2_x/tutorial/mod_proxy_and_lenya_continued.html">dev@lenya.apache.org</a>
+</div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>
Propchange: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.pdf
URL: http://svn.apache.org/viewcvs/lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.pdf?rev=164477&view=auto
==============================================================================
Binary file - no diff available.
Propchange: lenya/site/1_2_x/tutorial/mod_proxy_and_lenya_continued.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Added: lenya/site/1_2_x/tutorial/understanding_lenya.html
URL: http://svn.apache.org/viewcvs/lenya/site/1_2_x/tutorial/understanding_lenya.html?rev=164477&view=auto
==============================================================================
--- lenya/site/1_2_x/tutorial/understanding_lenya.html (added)
+++ lenya/site/1_2_x/tutorial/understanding_lenya.html Sun Apr 24 07:10:31 2005
@@ -0,0 +1,578 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.6">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Part 1: Understanding Lenya</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> > <a href="http://lenya.apache.org/">lenya</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+ |header
+ +-->
+<div class="header">
+<!--+
+ |start group logo
+ +-->
+<div class="grouplogo">
+<a href="http://lenya.apache.org"><img class="logoImage" alt="Lenya" src="../../images/apache-lenya-light.png" title="
+ Apache Lenya is a Java-based Open-Source Content Management System.
+ It is based on open standards such as XML and XSLT.
+ One of its core components is Cocoon from the Apache Software Foundation.
+ "></a>
+</div>
+<!--+
+ |end group logo
+ +-->
+<!--+
+ |start Project Logo
+ +-->
+<div class="projectlogo">
+<a href=""></a>
+</div>
+<!--+
+ |end Project Logo
+ +-->
+<!--+
+ |start Search
+ +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="lenya.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with :');" value="Search the site with :" size="25" name="q" id="query" type="text">
+ <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+ |end search
+ +-->
+<!--+
+ |start Tabs
+ +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../1_4/index.html">Version 1.4</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../../1_2_x/index.html">Version 1.2</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../community/index.html">Community</a>
+</li>
+</ul>
+<!--+
+ |end Tabs
+ +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+ |start Subtabs
+ +-->
+<div id="level2tabs"></div>
+<!--+
+ |end Endtabs
+ +-->
+<script type="text/javascript" language="JavaScript"><!--
+ document.write("Published: " + document.lastModified);
+ // --></script>
+</div>
+<!--+
+ |breadtrail
+ +-->
+<div class="breadtrail">
+
+
+ </div>
+<!--+
+ |start Menu, mainarea
+ +-->
+<!--+
+ |start Menu
+ +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Version 1.2</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../../1_2_x/index.html">Index</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.2', '../../skin/')" id="menu_1.1.2Title" class="menutitle">Installation</div>
+<div id="menu_1.1.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/index.html">Download</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/subversion.html">Subversion Access</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/installation/source_version.html">Install Instructions</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.3', '../../skin/')" id="menu_selected_1.1.3Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Tutorial</div>
+<div id="menu_selected_1.1.3" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/index.html">Introduction</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">1. Understanding Lenya</div>
+<div class="menupageitemgroup">
+<div class="menupageitem">
+<a href="#history">History</a>
+</div>
+<div class="menupageitem">
+<a title="Approach to Content Management" href="#approach">Approach to Content...</a>
+</div>
+<div class="menupageitem">
+<a href="#goodstuff">The good stuff</a>
+</div>
+<div class="menupageitem">
+<a href="#downers">Some downers</a>
+</div>
+<div class="menupageitem">
+<a href="#next">What’s next?</a>
+</div>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/installing_lenya.html">2. Installing Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/anatomy_of_the_pipeline.html">3. Anatomy of the Pipeline</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/editing_in_lenya.html">4. Editing in Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/custom_navigation.html">5. Custom Navigation in Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/mod_proxy_and_lenya.html">6a. Mod Proxy and Lenya</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/tutorial/mod_proxy_and_lenya_continued.html">6b. Mod Proxy and Lenya</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4', '../../skin/')" id="menu_1.1.4Title" class="menutitle">Components</div>
+<div id="menu_1.1.4" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.4.1', '../../skin/')" id="menu_1.1.4.1Title" class="menutitle">Access Control</div>
+<div id="menu_1.1.4.1" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/terms.html">Basic Terms</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accesscontrollers.html">Access Controllers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accesscontrollerresolvers.html">Access Controller Resolvers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/authenticators.html">Authenticators</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/authorizers.html">Authorizers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/policymanagers.html">Policies and Policy Managers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/accreditablemanagers.html">Accreditable Managers</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/accesscontrol/ssl.html">SSL Encryption</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.2', '../../skin/')" id="menu_1.1.4.2Title" class="menutitle">Authoring</div>
+<div id="menu_1.1.4.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/adding-document-creator.html">Adding a new document creator</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/image-upload.html">Image Upload</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/authoring/openoffice.html">OpenOffice</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.3', '../../skin/')" id="menu_1.1.4.3Title" class="menutitle">Deployment</div>
+<div id="menu_1.1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/deployment/proxying.html">Proxying</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.4', '../../skin/')" id="menu_1.1.4.4Title" class="menutitle">Editors</div>
+<div id="menu_1.1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/htmlform.html">HTML Form Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/1form.html">HTML One Form Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/bxe.html">Bitflux Editor</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/kupu.html">Kupu</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/editors/xopus.html">Xopus</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.5', '../../skin/')" id="menu_1.1.4.5Title" class="menutitle">Layout</div>
+<div id="menu_1.1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/navigation.html">Navigation</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/xhtml-templating.html">XHTML templating</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/static-resources.html">Serving static resources</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/layout/lenya-menubar.html">Lenya Menubar</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.6', '../../skin/')" id="menu_1.1.4.6Title" class="menutitle">Publication</div>
+<div id="menu_1.1.4.6" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/publication/pageenvelopemodule.html">PageEnvelopeModule</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/publication/siteTree.html">Site tree</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.7', '../../skin/')" id="menu_1.1.4.7Title" class="menutitle">Resource Types</div>
+<div id="menu_1.1.4.7" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/resource-types/resource-types.html">Resource Types</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.8', '../../skin/')" id="menu_1.1.4.8Title" class="menutitle">Revision Control</div>
+<div id="menu_1.1.4.8" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/revisioncontroller.html">Revision Controller</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/rcml.html">RCML</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/checkin.html">Check In</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/checkout.html">Check Out</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/version.html">Revisions</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/revisioncontrol/rollback.html">Rollback</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.9', '../../skin/')" id="menu_1.1.4.9Title" class="menutitle">Repository</div>
+<div id="menu_1.1.4.9" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/repository/webdav.html">WebDAV Servers</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.10', '../../skin/')" id="menu_1.1.4.10Title" class="menutitle">Search</div>
+<div id="menu_1.1.4.10" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/search/lucene.html">Searching with Lucene</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.11', '../../skin/')" id="menu_1.1.4.11Title" class="menutitle">URI Handling</div>
+<div id="menu_1.1.4.11" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/URIParametrizer.html">URI Parametrizer</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/standardURI.html">URI Scheme</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/uri-handling/usecases.html">Usecases</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.12', '../../skin/')" id="menu_1.1.4.12Title" class="menutitle">Asset Management</div>
+<div id="menu_1.1.4.12" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/asset-management/management.html">Asset Management</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.13', '../../skin/')" id="menu_1.1.4.13Title" class="menutitle">Link Management</div>
+<div id="menu_1.1.4.13" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/link-management/link-management.html">Link Management</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.14', '../../skin/')" id="menu_1.1.4.14Title" class="menutitle">Meta Data</div>
+<div id="menu_1.1.4.14" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/metadata/metadata.html">Meta Data Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.15', '../../skin/')" id="menu_1.1.4.15Title" class="menutitle">Multilingual Documents</div>
+<div id="menu_1.1.4.15" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/multilingual/multilingual.html">Multilingual Document Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.16', '../../skin/')" id="menu_1.1.4.16Title" class="menutitle">Tasks</div>
+<div id="menu_1.1.4.16" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/concept.html">The Task Concept</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/defining.html">Defining Tasks</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/taskaction.html">The TaskAction</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/scheduling.html">Scheduling a Task</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.16.5', '../../skin/')" id="menu_1.1.4.16.5Title" class="menutitle">Included tasks</div>
+<div id="menu_1.1.4.16.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/anttask.html">AntTask</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/publisher.html">DefaultFilePublisher</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/exporter.html">StaticHTMLExporter</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/mailtask.html">MailTask</a>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/tasks/development.html">Developing Tasks</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.17', '../../skin/')" id="menu_1.1.4.17Title" class="menutitle">Workflow</div>
+<div id="menu_1.1.4.17" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/terms.html">Terms</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/state-machine.html">The State Machine</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/configuration.html">Configuration</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/workflow/implementation.html">Implementation</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.4.18', '../../skin/')" id="menu_1.1.4.18Title" class="menutitle">Site Management</div>
+<div id="menu_1.1.4.18" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/archive.html">Archive</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/copy.html">Copy</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/deactivate.html">Deactivate</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/delete.html">Delete</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/deletetrash.html">Delete the trash</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/move.html">Move</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/moveupdown.html">Move Up/Down</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/rename.html">Rename</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/components/sitemanagement/restore.html">Restore</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.5', '../../skin/')" id="menu_1.1.5Title" class="menutitle">Miscellaneous</div>
+<div id="menu_1.1.5" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/namespaces.html">Namespaces</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/coding-guidelines.html">Coding Guidelines</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/unittests.html">Unit Tests</a>
+</div>
+<div class="menuitem">
+<a title="" href="../../1_2_x/misc/xinclude-processor.html">XInclude Processor</a>
+</div>
+</div>
+<div class="menuitem">
+<a title="" href="../../../apidocs/1.2/index.html">1.2 API (Javadoc)</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+ |alternative credits
+ +-->
+</div>
+<!--+
+ |end Menu
+ +-->
+<!--+
+ |start content
+ +-->
+<div id="content">
+<div id="skinconf-txtlink"></div>
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="understanding_lenya.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+ PDF</a>
+</div>
+<h1>Part 1: Understanding Lenya</h1>
+
+<p>In this first installment in a series of articles on Lenya, we’d like to talk about
+ what Lenya is and what approach it takes in content management, including its
+ advantages and disadvantages.</p>
+
+
+<a name="N10011"></a><a name="history"></a>
+<h2 class="h3">History</h2>
+<div class="section">
+<p>Lenya was started by Michael Wechner in early 1999 as a way to document a journal on
+ pattern formation. From there, he co-started a company called
+ <a href="http://wyona.com">Wyona</a> which continued to work on the project
+ until the spring of 2003, where the project was donated to the Apache Software
+ Foundation.</p>
+</div>
+
+<a name="N1001F"></a><a name="approach"></a>
+<h2 class="h3">Approach to Content Management</h2>
+<div class="section">
+<p>Lenya’s approach to content management is just that: content management. While
+ <a href="http://www.textpattern.com/">some</a> CMS’s allow users to
+ change the styling of pages in the graphical interface of the application, Lenya
+ does not. Some consider this to be a big negative for Lenya, and for a large
+ institution with multiple designers and CSS developers, it can be. We’ve been
+ finding, however, as just one user that maintains the look and feel of Hiram’s
+ website, this isn’t that bad. Instead of working in a webpage to update our CSS, we
+ just upload it to the server.</p>
+<p>Of course, this means that the structural markup for the overall page layout is not
+ managed in Lenya either, well, at least not through the graphical user
+ interface. Instead, your page layout is done in XSL files, and when the page is
+ accessed through your web browser, the content and the XSL template merge and get
+ transformed into a valid HTML or XHTML document.</p>
+</div>
+
+<a name="N1002F"></a><a name="goodstuff"></a>
+<h2 class="h3">The good stuff</h2>
+<div class="section">
+<p>What grabbed our attention with Lenya was how it went about presenting your content
+ for editing. When you log in to your website through Lenya, you can click on the
+ navigation in the pages as if you were browsing your website right there. Find
+ something wrong in the text of one page as you browse? Just go to Edit -> WYSIWYG
+ Editor and you’re taken to a page where you can change the content. Save your
+ changes, then publish the updated page. It’s incredibly easy.</p>
+<p>What’s also nice is that the foundation of Lenya is built on XML which, of course, is
+ great news for web standards gurus who will only work with XHTML. By default,
+ Lenya uses HTML 4.0, but a quick change in one file will switch all your pages to
+ XHTML Strict. And since it relies on XML, there’s no backend database that
+ manages this: it’s all flat XML files stored on the server. Don’t get this
+ confused, however, with having the ability to connect to a database as you would
+ with any
+ <a href="http://www.php.net/">PHP</a>-type language, because Lenya can
+ definitely do this as well.</p>
+<p>And as any good CMS would, information about the pages, like metadata, amongst
+ other things, can be edited for each page and is kept separate from the content on
+ the page itself. Lenya utilizes the
+ <a href="http://www.dublincore.org/">Dublin Core</a> for its metadata
+ tags in pages.</p>
+</div>
+
+
+<a name="N10046"></a><a name="downers"></a>
+<h2 class="h3">Some downers</h2>
+<div class="section">
+<p>OK, so there are some downers. The terminology takes a bit of getting used to. For
+ example, “assets” are documents, images, or anything you want to link to in the
+ page that isn’t text. Some things just don’t happen by default in Lenya: they
+ require some extra programming. For example, say you add a new item in your site’s
+ navigation, but it doesn’t have a page on your website, it just links to an outside
+ site. There’s no nice way of doing this in the graphical interface. A login to the
+ server to edit the publication’s sitemap will provide this functionality.</p>
+<p>Also, Lenya runs on top of
+ <a href="http://cocoon.apache.org/">Apache Cocoon</a>, which is not the
+ downer, but the time required to learn it makes a lot of people give up quickly.
+
+ <a href="http://cocoon.apache.org/2.1/userdocs/concepts/index.html#Basic+Mechanisms.">
+ Pipelines</a> are the big key to understanding how a page is created in
+ Lenya, and trust me, that will take some getting used to when you want to do
+ something that doesn’t fit the general site provided for you as an example. With
+ that, it’s much harder to find a company that will host Lenya for you – chances are
+ you’ll need to have a server of your own.</p>
+<p>One last thing for picky web developers: getting a website to have clean URLs is a
+ bit tricky. Even we have yet to get this working exactly the way we would like it to.
+ And with Lenya and clean URLs comes a much more detailed look into configurations
+ with the Apache web server than you are probably used to, which does take some
+ time.</p>
+</div>
+
+<a name="N1005D"></a><a name="next"></a>
+<h2 class="h3">What’s next?</h2>
+<div class="section">
+<p>So, you read the advantages and disadvantages and you want to take the plunge into
+ Lenya? Good, because in my next article we’ll be explaining the methods we took to
+ get Lenya up and running on our RedHat Enterprise Linux server. Don’t worry, you
+ won’t need this specific operating system to make Lenya work. Lenya can run on
+ pretty much any UNIX/Linux server and (even) Microsoft Windows.</p>
+</div>
+
+</div>
+<!--+
+ |end content
+ +-->
+<div class="clearboth"> </div>
+</div>
+<div id="footer">
+<!--+
+ |start bottomstrip
+ +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+// --></script>
+</div>
+<div class="copyright">
+ Copyright © 2002-2005 The Apache Software Foundation.</div>
+<div id="feedback">
+ Send feedback about the website to:
+ <a id="feedbackto" href="mailto:dev@lenya.apache.org?subject=Feedback%C2%A0for%C2%A01_2_x/tutorial/understanding_lenya.html">dev@lenya.apache.org</a>
+</div>
+<!--+
+ |end bottomstrip
+ +-->
+</div>
+</body>
+</html>
Propchange: lenya/site/1_2_x/tutorial/understanding_lenya.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lenya/site/1_2_x/tutorial/understanding_lenya.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: lenya/site/1_2_x/tutorial/understanding_lenya.pdf
URL: http://svn.apache.org/viewcvs/lenya/site/1_2_x/tutorial/understanding_lenya.pdf?rev=164477&view=auto
==============================================================================
Binary file - no diff available.
Propchange: lenya/site/1_2_x/tutorial/understanding_lenya.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf
Modified: lenya/site/community/acknowledgements.html
URL: http://svn.apache.org/viewcvs/lenya/site/community/acknowledgements.html?rev=164477&r1=164476&r2=164477&view=diff
==============================================================================
--- lenya/site/community/acknowledgements.html (original)
+++ lenya/site/community/acknowledgements.html Sun Apr 24 07:10:31 2005
@@ -267,6 +267,8 @@
<li>Kars Veiling</li>
+<li>Jon Linczak (tutorial articles, new lenya menu)</li>
+
<li>Lon Boonen
<p>
Lon is the original creator of Xopus. He helped a lot to integrate Xopus into Lenya.
@@ -308,7 +310,7 @@
</ul>
</div>
-<a name="N100B5"></a><a name="credits-software"></a>
+<a name="N100B8"></a><a name="credits-software"></a>
<h2 class="h3">Credits</h2>
<div class="section">
<p>This product includes software developed by the Apache
Modified: lenya/site/community/acknowledgements.pdf
URL: http://svn.apache.org/viewcvs/lenya/site/community/acknowledgements.pdf?rev=164477&r1=164476&r2=164477&view=diff
==============================================================================
Binary files - no diff available.
Modified: lenya/site/index.html
URL: http://svn.apache.org/viewcvs/lenya/site/index.html?rev=164477&r1=164476&r2=164477&view=diff
==============================================================================
--- lenya/site/index.html (original)
+++ lenya/site/index.html Sun Apr 24 07:10:31 2005
@@ -175,7 +175,7 @@
<h1>Apache Lenya - Open Source Java/XML Content Management System</h1>
<p>
-<img alt="Screenshot of the Apache Lenya authoring area" src="images/menubar.png"></p>
+<img alt="Screenshot of the Apache Lenya menu bar" src="images/menubar.png"></p>
<p>
Apache Lenya is an Open Source Java/XML Content Management System and comes with revision control, site management, scheduling, search, WYSIWYG editors, and workflow.</p>
@@ -195,6 +195,8 @@
<li>Two Lenya presentations at <a href="http://apachecon.com/">ApacheCon Europe 2005</a> (Stuttgart, Germany
18-22 July 2005)</li>
+<li>New <a href="1_2_x/tutorial/">Lenya tutorials</a> posted (April 24, 2005) </li>
+
<li>Lenya 1.2.2 released (February 28, 2005) </li>
<li>Lenya 1.2.1 released (December 29, 2004) </li>
@@ -207,14 +209,14 @@
</div>
-<a name="N10041"></a><a name="%0A%09%09%09%09"></a>
+<a name="N10048"></a><a name="%0A%09%09%09%09"></a>
<h2 class="h3">
Features
</h2>
<div class="section">
<p>If you have additional requirements beyond the
features listed below, you have access to all <a href="http://cocoon.apache.org/2.1/features.html">Apache Cocoon features</a> to develop them.</p>
-<a name="N10051"></a><a name="%0A%09%09%09%09-N10051"></a>
+<a name="N10058"></a><a name="%0A%09%09%09%09-N10058"></a>
<h3 class="h4">
Authoring
</h3>
@@ -239,7 +241,7 @@
</li>
</ul>
-<a name="N10072"></a><a name="%0A%09%09%09%09-N10072"></a>
+<a name="N10079"></a><a name="%0A%09%09%09%09-N10079"></a>
<h3 class="h4">
Workflow
</h3>
@@ -260,7 +262,7 @@
</li>
</ul>
-<a name="N1008B"></a><a name="%0A%09%09%09%09-N1008B"></a>
+<a name="N10092"></a><a name="%0A%09%09%09%09-N10092"></a>
<h3 class="h4">
Internationalization
</h3>
@@ -274,7 +276,7 @@
</li>
</ul>
-<a name="N1009E"></a><a name="%0A%09%09%09%09-N1009E"></a>
+<a name="N100A5"></a><a name="%0A%09%09%09%09-N100A5"></a>
<h3 class="h4">
Layout
</h3>
@@ -302,7 +304,7 @@
</li>
</ul>
-<a name="N100BA"></a><a name="%0A%09%09%09%09-N100BA"></a>
+<a name="N100C1"></a><a name="%0A%09%09%09%09-N100C1"></a>
<h3 class="h4">
Site Management
</h3>
@@ -346,7 +348,7 @@
</li>
</ul>
-<a name="N100E5"></a><a name="%0A%09%09%09%09-N100E5"></a>
+<a name="N100EC"></a><a name="%0A%09%09%09%09-N100EC"></a>
<h3 class="h4">
Security
</h3>
@@ -369,7 +371,7 @@
</li>
</ul>
-<a name="N100FE"></a><a name="%0A%09%09%09%09-N100FE"></a>
+<a name="N10105"></a><a name="%0A%09%09%09%09-N10105"></a>
<h3 class="h4">
Misc
</h3>
@@ -383,7 +385,7 @@
</li>
</ul>
-<a name="N10111"></a><a name="%0A%09%09%09%09-N10111"></a>
+<a name="N10118"></a><a name="%0A%09%09%09%09-N10118"></a>
<h3 class="h4">
Under the Hood
</h3>
Modified: lenya/site/index.pdf
URL: http://svn.apache.org/viewcvs/lenya/site/index.pdf?rev=164477&r1=164476&r2=164477&view=diff
==============================================================================
Binary files - no diff available.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org