update the section "Installing in Virtualized Linux Environments";
authorSteve Sheppard <ssheps@gmail.com>
Sat, 15 Jan 2011 17:30:25 +0000 (12:30 -0500)
committerSteve Sheppard <ssheps@gmail.com>
Sat, 15 Jan 2011 17:30:25 +0000 (12:30 -0500)
1.6/admin/serversideinstallation.xml

index eccabd8..ffbcf7e 100644 (file)
@@ -20,8 +20,8 @@
        Professional</systemitem>, <systemitem class="osname">Windows7</systemitem>), but the software can still be
        installed and run on <systemitem class="osname">Windows</systemitem> via a so-called
        <emphasis>virtualized</emphasis> Linux-guest Operating System (using, for example,
-       <application>"VirtualBox"</application>, or <application>"VMware"</application>, or
-       <application>"VirtualPC"</application> to emulate a <systemitem class="osname">Linux</systemitem>
+       <application>"VirtualBox"</application> or <application>"VMware"</application>
+       to emulate a <systemitem class="osname">Linux</systemitem>
        environment). It can also be installed to run on other <systemitem class="osname">Linux</systemitem> 
        systems via virtualized environments (using, for example, <application>"VirtualBox"</application> or
        <application>"VMware"</application>). More information on virtualized environments can be found in 
                                        In the following example, the default shell for the 
                                        <systemitem class="username">opensrf</systemitem> user is automatically set
                                        to <command>/bin/bash</command> to inherit a reasonable environment:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        useradd -m -s /bin/bash opensrf
        passwd opensrf</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Download and Unpack Latest OpenSRF Version</title>
                                        the directory <filename class="directory">/home/opensrf</filename> then download
                                        and extract OpenSRF. The new subdirectory
                                        <filename class="directory">/home/opensrf/OpenSRF-1.4.0</filename> will be created:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        cd /home/opensrf
        wget http://evergreen-ils.org/downloads/OpenSRF-1.4.0.tar.gz
        tar zxf OpenSRF-1.4.0.tar.gz</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Install Prerequisites to Build OpenSRF</title>
                                        distribution keywords table <xref linkend="serversideinstallation-keywords-opensrf"/> . 
                                        For example, to install the prerequisites for Ubuntu version 10.04 (Lucid Lynx) you would
                                        enter this command: <command>make -f src/extras/Makefile.install ubuntu-lucid</command> .</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        cd /home/opensrf/OpenSRF-1.4.0
        make -f src/extras/Makefile.install [DISTRIBUTION]</userinput>
-</screen>
+                                       </screen>
                                        <table xml:id="serversideinstallation-keywords-opensrf">
                                                <?dbfo keep-together="always" ?>
                                                <title>Keyword Targets for OpenSRF <application>"make"</application> Command</title>
                                                        include support for Python and Java, add the configuration
                                                        options <option>--enable-python</option> and
                                                        <option>--enable-java</option>, respectively:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the opensrf user:
        cd /home/opensrf/OpenSRF-1.4.0
        ./configure --prefix=/openils --sysconfdir=/openils/conf
        make</userinput>
-</screen>
+                                                       </screen>
                                                        <para>This step will take several minutes to complete.</para>
                                                </step>
                                                <step>
                                                        user, return to the new OpenSRF build directory and use the
                                                        <command>make</command> utility to compile, link and install
                                                        OpenSRF:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        cd /home/opensrf/OpenSRF-1.4.0
        make install</userinput>
-</screen>
+                                                       </screen>
                                                        <para>This step will take several minutes to complete.</para>
                                                </step>
                                                <step>
                                                        new library path, then run the command
                                                        <command>ldconfig</command> to automatically read the file and
                                                        modify the system dynamic library path:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        echo "/openils/lib" > /etc/ld.so.conf.d/osrf.conf
        ldconfig</userinput>
-</screen>
+                                                       </screen>
                                                </step>
                                                <step xml:id="serversideinstallation-definedomains">
                                                        <title>Define Public and Private OpenSRF Domains</title>
                                                        <indexterm>
                                                                <primary>Jabber</primary>
                                                        </indexterm>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        127.0.1.2  public.localhost   public
        127.0.1.3  private.localhost  private</userinput>
-</screen>
+                                                       </screen>
                                                </step>
                                                <step>
                                                        <title>Change File Ownerships</title>
                                                        user, change the ownership of all files installed in the
                                                        directory <filename class="directory">/openils</filename> to the
                                                        user <systemitem class="username">opensrf</systemitem>:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        chown -R opensrf:opensrf /openils</userinput>
-</screen>
+                                                       </screen>
                                                </step>
                                        </substeps>
                                </step>
                                        <para>Before continuing with configuration of <systemitem class="service">ejabberd</systemitem>
                                        you must stop that service. As the <systemitem class="username">root</systemitem> user,
                                        execute the following command to stop the service:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        /etc/init.d/ejabberd stop</userinput>
-</screen>
+                                       </screen>
                                        <para>If <systemitem class="service">ejabberd</systemitem> reports that it 
                                        is already stopped, there may have been a problem when it started back
                                        in the installation step. If there are any remaining daemon processes such as
                                        <systemitem class="daemon">beam</systemitem> or
                                        <systemitem class="daemon">epmd</systemitem> 
                                        you may need to perform the following commands to kill them:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        epmd -kill
        killall beam; killall beam.smp
        rm /var/lib/ejabberd/*
        echo 'ERLANG_NODE=ejabberd@localhost' >> /etc/default/ejabberd</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Edit the <systemitem class="service">ejabberd</systemitem> configuration</title>
                                        <para>As the <systemitem class="username">root</systemitem> user, restart the
                                        <systemitem class="service">ejabberd</systemitem> service to test the
                                        configuration changes and to register your users:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        /etc/init.d/ejabberd start</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Register <systemitem class="username">router</systemitem> and
                                        for the users <systemitem class="username">router</systemitem> and
                                        <systemitem class="username">opensrf</systemitem> on each domain (remember to replace
                                        <emphasis>NEWPASSWORD</emphasis> with the appropriate password):</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        # Note: the syntax for registering a user with ejabberdctl is:
        #    ejabberdctl register USER DOMAIN PASSWORD
        ejabberdctl register router  public.localhost  NEWPASSWORD
        ejabberdctl register opensrf private.localhost NEWPASSWORD
        ejabberdctl register opensrf public.localhost  NEWPASSWORD</userinput>
-</screen>
+                                       </screen>
                                        <para>Note that the users <systemitem class="username">router</systemitem> and
                                        <systemitem class="username">opensrf</systemitem> and their respective passwords 
                                        will be used again in <xref linkend="serversideinstallation-passwords"/> when
                                        execute the following commands to create the new configuration files
                                        <filename>/openils/conf/opensrf_core.xml</filename> and
                                        <filename>/openils/conf/opensrf.xml</filename> from the example templates:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        cd /openils/conf
        cp opensrf.xml.example      opensrf.xml
        cp opensrf_core.xml.example opensrf_core.xml</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step xml:id="serversideinstallation-passwords">
                                        <title>Update usernames and passwords in the OpenSRF configuration file</title>
                                        <para>to instead read:</para>
                                        <literal>/tmp/persist.db</literal>
                                        <para>Following is a sample modification of that portion of the file:</para>
-<programlisting language="xml"><![CDATA[
+                                       <programlisting language="xml"><![CDATA[
 <!-- Example of an app-specific setting override -->
 <opensrf.persist>
   <app_settings>
                                        to the home directory of each user who will use <command>srfsh</command>. 
                                        For instance, do the following for the 
                                        <systemitem class="username">opensrf</systemitem> user:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        cp /openils/conf/srfsh.xml.example  /home/opensrf/.srfsh.xml</userinput>
-</screen>
+                                       </screen>
                                        <para>Edit each user's file <filename>~/.srfsh.xml</filename> and make the
                                        following changes:</para>
                                        <itemizedlist>
                                                </listitem>
                                        </itemizedlist>
                                        <para>Following is a sample of the file:</para>
-<programlisting language="xml"><![CDATA[
+                                       <programlisting language="xml"><![CDATA[
 <?xml version="1.0"?>
 <!-- This file follows the standard bootstrap config file layout -->
 <!-- found in opensrf_core.xml -->
                                        environmental variable <envar>PATH</envar> by adding a new file path to the
                                        <systemitem class="username">opensrf</systemitem> user's shell configuration
                                        file <filename>~/.bashrc</filename>:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        echo "export PATH=/openils/bin:\$PATH" >> ~/.bashrc</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Start OpenSRF</title>
                                        <para>As the <systemitem class="username">root</systemitem> user, start the
                                        <systemitem class="service">ejabberd</systemitem> and 
                                        <systemitem class="service">memcached</systemitem> services:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        /etc/init.d/ejabberd start
        /etc/init.d/memcached start</userinput>
-</screen>
+                                       </screen>
                                        <para>As the <systemitem class="username">opensrf</systemitem> user,
                                        start OpenSRF as follows:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        osrf_ctl.sh -l -a start_all</userinput>
-</screen>
+                                       </screen>
                                        <para>The flag <option>-l</option> forces Evergreen to use 
                                        <systemitem class="domainname">localhost</systemitem> (your current system) 
                                        as the hostname. The flag <option>-a start_all</option>  starts the other 
                                        <systemitem class="service">OpenSRF</systemitem> using the <command>srfsh</command> 
                                        utility and trying to call the <command>add</command> method on the OpenSRF 
                                        <systemitem class="service">math</systemitem> service:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        /openils/bin/srfsh</userinput>
-       <computeroutput>
+                                               <computeroutput>
        srfsh# <userinput>request opensrf.math add 2 2</userinput></computeroutput>
-       <computeroutput>
+                                               <computeroutput>
        Received Data: 4
        ------------------------------------
        Request Completed Successfully
        Request Time in seconds: 0.007519
        ------------------------------------</computeroutput>
-</screen>
+                                       </screen>
                                        <para>For other <command>srfsh</command> commands, type in
                                        <userinput>help</userinput> at the prompt.</para>
                                </step>
                                        <command>osrf_ctl.sh</command> again. As the 
                                        <systemitem class="username">opensrf</systemitem> 
                                        user, stop OpenSRF as follows:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        osrf_ctl.sh -l -a stop_all</userinput>
-</screen>
+                                       </screen>
                                </step>
                        </procedure>
                </section>
                                        the directory <filename class="directory">/home/opensrf</filename> then download
                                        and extract Evergreen. The new subdirectory
                                        <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.2</filename> will be created:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        cd /home/opensrf
        wget http://evergreen-ils.org/downloads/Evergreen-ILS-1.6.1.2.tar.gz
        tar zxf Evergreen-ILS-1.6.1.2.tar.gz</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step xml:id="serversideinstallation-installprereq">
                                        <title>Install Prerequisites to Build Evergreen</title>
                                        For example, to install the prerequisites for Ubuntu version 9.10 (Karmic Koala) you would
                                        enter this command: <command>make -f Open-ILS/src/extras/Makefile.install
                                        ubuntu-karmic</command>.</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        cd /home/opensrf/Evergreen-ILS-1.6.1.2
        make -f Open-ILS/src/extras/Makefile.install [DISTRIBUTION]</userinput>
-</screen>
+                                       </screen>
                                        <table xml:id="serversideinstallation-keywords-evergreen">
                                                <?dbfo keep-together="always" ?>
                                                <title>Keyword Targets for Evergreen <application>"make"</application> Command</title>
                                        <para>You will need to install several Perl modules on the other system. As the
                                        <systemitem class="username">root</systemitem> user install the following Perl
                                        modules:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        # first, ensure the gcc compiler is installed:
        apt-get install gcc
 
        # then install the Perl modules:
        perl -MCPAN -e shell</userinput>
-       <computeroutput>
+                                               <computeroutput>
        cpan> <userinput>install JSON::XS</userinput>
        cpan> <userinput>install MARC::Record</userinput>
        cpan> <userinput>install MARC::File::XML</userinput></computeroutput>
-</screen>
+                                       </screen>
                                        <para>For more information on installing Perl Modules vist the official
                                        <link xl:href="http://www.cpan.org/">CPAN</link> site.</para>
                                        <indexterm>
                                        do this by creating the new file <filename>/etc/ld.so.conf.d/osrf.conf</filename>
                                        containing a new library path, then run the command <command>ldconfig</command> to
                                        automatically read the file and modify the system dynamic library path:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        echo "/usr/local/lib"     >> /etc/ld.so.conf.d/osrf.conf
        echo "/usr/local/lib/dbd" >> /etc/ld.so.conf.d/osrf.conf
        ldconfig</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step performance="optional">
                                        <title>Restart the PostgreSQL Server</title>
                                        execute the following command (remember to replace
                                        <emphasis>PGSQL_VERSION</emphasis> with your installed PostgreSQL version,
                                        for example <literal>8.3</literal>):</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        /etc/init.d/postgresql-PGSQL_VERSION restart</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step xml:id="serversideinstallation-configure">
                                        <title>Configure Evergreen</title>
                                        and linked later in <xref linkend="serversideinstallation-compile"/>.</para>
                                        <para>As the <systemitem class="username">opensrf</systemitem> user, return to
                                        the Evergreen build directory and execute these commands:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        cd /home/opensrf/Evergreen-ILS-1.6.1.2
        ./configure --prefix=/openils --sysconfdir=/openils/conf
        make</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step xml:id="serversideinstallation-compile">
                                        <title>Compile, Link and Install Evergreen</title>
                                        default Evergreen Staff Client.</para>
                                        <para>As the <systemitem class="username">root</systemitem> user, return to the
                                        Evergreen build directory and use the <command>make</command> utility as shown below:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        cd /home/opensrf/Evergreen-ILS-1.6.1.2
        make STAFF_CLIENT_BUILD_ID=rel_1_6_1_2 install</userinput>
-</screen>
+                                       </screen>
                                        <para>The Staff Client will also be automatically built, but you must remember
                                        to set the variable <envar>STAFF_CLIENT_BUILD_ID</envar> to match the version of the 
                                        Staff Client you will use to connect to the Evergreen server.</para>
                                        directory <filename class="directory">/openils/var/web/xul</filename> that points to the
                                        subdirectory <filename class="directory">/server</filename> of the new Staff Client
                                        build:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        cd /openils/var/web/xul
        ln -sf rel_1_6_1_2/server server</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Copy the OpenSRF Configuration Files</title>
                                        to <systemitem class="username">opensrf</systemitem>.
                                        As the <systemitem class="username">root</systemitem> user, execute the following
                                        commands:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        cd /openils/conf
        cp opensrf.xml        opensrf.xml.BAK
        cp opensrf_core.xml.example opensrf_core.xml
        cp oils_web.xml.example     oils_web.xml
        chown -R opensrf:opensrf /openils/</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <title>Create and Configure PostgreSQL Database</title>
                                                        <para>As the <systemitem class="username">postgres</systemitem>
                                                        user on the PostgreSQL system create the PostgreSQL database,
                                                        then set some internal paths:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the postgres user:
        createdb evergreen -E UTF8 -T template0
        createlang plperl   evergreen
        createlang plperlu  evergreen
        createlang plpgsql  evergreen</userinput>
-</screen>
+                                                       </screen>
                                                        <para>Continue as the <systemitem class="username">postgres</systemitem> user
                                                        and execute the SQL scripts as shown below (remember to adjust the paths as needed,
                                                        where <emphasis>PGSQL_VERSION</emphasis> is your installed PostgreSQL
                                                        version, for example <literal>8.3</literal>).</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the postgres user:
        psql -f /usr/share/postgresql/PGSQL_VERSION/contrib/tablefunc.sql evergreen
        psql -f /usr/share/postgresql/PGSQL_VERSION/contrib/tsearch2.sql  evergreen
        psql -f /usr/share/postgresql/PGSQL_VERSION/contrib/pgxml.sql     evergreen</userinput>
-</screen>
+                                                       </screen>
                                                </step>
                                                <step xml:id="serversideinstallation-postgresqlcreateuser">
                                                        <title>Create <systemitem class="username">evergreen</systemitem> PostgreSQL user</title>
                                                        named <systemitem class="username">evergreen</systemitem> and
                                                        assign a password (remember to replace <emphasis>NEWPASSWORD</emphasis>
                                                        with an appropriate new password):</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the postgres user:
        createuser -P -s evergreen</userinput>
-       <computeroutput>
+                                                               <computeroutput>
        Enter password for new role: <userinput>NEWPASSWORD</userinput>
        Enter it again: <userinput>NEWPASSWORD</userinput></computeroutput>
-</screen>
+                                                       </screen>
                                                </step>
                                                <step>
                                                        <title>Create database schema</title>
                                                        the following commands and replace <emphasis>HOSTNAME, PORT,
                                                        PASSWORD</emphasis> and <emphasis>DATABASENAME</emphasis> with appropriate
                                                        values:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        cd /home/opensrf/Evergreen-ILS-1.6.1.2
        perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
          --service all --create-schema --create-bootstrap --create-offline \
          --hostname HOSTNAME --port PORT \
          --user evergreen --password PASSWORD --database DATABASENAME</userinput>
-</screen>
+                                                       </screen>
                                                        <para>On most systems, <emphasis>HOSTNAME</emphasis> will be
                                                        <emphasis role="bold">localhost</emphasis> and
                                                        <emphasis>PORT</emphasis> will be <emphasis role="bold">5432</emphasis>.
                                                        <indexterm>
                                                                <primary>Apache modules</primary>
                                                        </indexterm>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        a2enmod ssl     # enable mod_ssl
        a2enmod rewrite # enable mod_rewrite
        a2enmod expires # enable mod_expires</userinput>
-</screen>
+                                                       </screen>
                                                        <para>As the commands execute, you may see warnings similar to:
                                                        <literal>Module SOMEMODULE already enabled</literal> but you can
                                                        safely ignore them.</para>
                                                        Evergreen installation directory to the Apache directory. As the
                                                        <systemitem class="username">root</systemitem> user, perform the
                                                        following commands:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        cd /home/opensrf/Evergreen-ILS-1.6.1.2
        cp Open-ILS/examples/apache/eg.conf     /etc/apache2/sites-available/
        cp Open-ILS/examples/apache/eg_vhost.conf  /etc/apache2/
        cp Open-ILS/examples/apache/startup.pl     /etc/apache2/</userinput>
-</screen>
+                                                       </screen>
                                                </step>
                                                <step xml:id="serversideinstallation-createsslcertificate">
                                                        <title>Create a Security Certificate</title>
                                                        accept the warnings in the Staff Client and browser during testing and
                                                        development. As the <systemitem class="username">root</systemitem> user,
                                                        perform the following commands:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        mkdir /etc/apache2/ssl
        cd /etc/apache2/ssl
        openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key</userinput>
-</screen>
+                                                       </screen>
                                                        <para>You will be prompted for several items of information; enter
                                                        the appropriate information for each item. The new files
                                                        <filename>server.crt</filename> and <filename>server.key</filename> will
                                                                        <para>In the section
                                                                        <literal>&lt;Directory "/openils/var/cgi-bin"></literal>
                                                                        replace the line:</para>
-                                                                       <literal>Allow from 10.0.0.0/8</literal> 
+                                                                       <literal>Allow from 10.0.0.0/8</literal>
                                                                        <para>with the line:</para>
                                                                        <literal>Allow from all</literal>
                                                                        <warning>This change allows access to your configuration
                                                                        <systemitem class="osname">Debian Lenny</systemitem>, as
                                                                        the <systemitem class="username">root</systemitem> user,
                                                                        edit the Apache configuration file and change the lines:</para>
-<screen>
-       <userinput>
+                                                                       <screen>
+                                                                               <userinput>
        export APACHE_RUN_USER=www-data
        export APACHE_RUN_GROUP=www-data</userinput>
-</screen>
+                                                                       </screen>
                                                                        <para>to instead read:</para>
-<screen>
-       <userinput>
+                                                                       <screen>
+                                                                               <userinput>
        export APACHE_RUN_USER=opensrf
        export APACHE_RUN_GROUP=opensrf</userinput>
-</screen>
+                                                                       </screen>
                                                                </listitem>
                                                                <listitem>
                                                                        <para>As the 
                                                                        modify the value for <literal>KeepAliveTimeout</literal>
                                                                        and <literal>MaxKeepAliveRequests</literal> to match
                                                                        the following:</para>
-<screen>
-       <userinput>
+                                                                       <screen>
+                                                                               <userinput>
        KeepAliveTimeout       1
        MaxKeepAliveRequests 100</userinput>
-</screen>
+                                                                       </screen>
                                                                </listitem>
                                                                <listitem>
                                                                        <para>Further configuration changes to Apache may be
                                                                        and modify the section related to <emphasis>prefork
                                                                        configuration</emphasis> to suit the load on your
                                                                        system:</para>
-<programlisting language="xml"><![CDATA[
+                                                                       <programlisting language="xml"><![CDATA[
 <IfModule mpm_prefork_module>
    StartServers           20
    MinSpareServers      5
                                                        following Apache configuration commands to disable the default
                                                        <emphasis>It Works</emphasis> web page and enable the Evergreen
                                                        web site, and then restart the Apache server:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the root user:
        # disable/enable web sites
        a2dissite default
        a2ensite eg.conf
        # restart the server
        /etc/init.d/apache2 reload</userinput>
-</screen>
+                                                       </screen>
                                                </step>
                                        </substeps>
                                </step>
                                                        <para>Modify the permissions in the directory 
                                                        <filename class="directory">/openils/var/cgi-bin</filename> 
                                                        to make the files executable:</para>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the opensrf user:
        chmod 755 /openils/var/cgi-bin/*.cgi</userinput>
-</screen>
+                                                       </screen>
                                                </listitem>
                                                <listitem>
                                                        <para>As the <systemitem class="username">opensrf</systemitem> user,
                                                        <emphasis>before</emphasis> the line <literal>[ -z "$PS1" ] &amp;&amp;
                                                        return </literal>. This will allow headless (scripted) logins to load the
                                                        correct environment.</note>
-<screen>
-       <userinput>
+                                                       <screen>
+                                                               <userinput>
        # as the opensrf user:
        echo "export PERL5LIB=/openils/lib/perl5:\$PERL5LIB" >> ~/.bashrc
        . ~/.bashrc</userinput>
-</screen>
+                                                       </screen>
                                                </listitem>
                                        </itemizedlist>
                                </step>
                                        <para>As the <systemitem class="username">root</systemitem>
                                        user, start the <systemitem class="service">ejabberd</systemitem> and 
                                        <systemitem class="service">memcached</systemitem> services as follows:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        /etc/init.d/ejabberd start
        /etc/init.d/memcached start</userinput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <para>As the <systemitem class="username">opensrf</systemitem> user,
                                        start Evergreen as follows:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        osrf_ctl.sh -l -a start_all</userinput>
-</screen>
+                                       </screen>
                                        <para>The flag <option>-l</option> forces Evergreen to use 
                                        <systemitem class="domainname">localhost</systemitem> (your current system) 
                                        as the hostname. The flag <option>-a start_all</option>  starts the other 
                                        changes to the library hierarchy.</para>
                                        <para>As the <systemitem class="username">opensrf</systemitem> user, execute the
                                        following command and review the results:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the opensrf user:
        cd /openils/bin
        ./autogen.sh -c /openils/conf/opensrf_core.xml -u</userinput>
-       <computeroutput>
+                                               <computeroutput>
        Updating Evergreen organization tree and IDL using '/openils/conf/opensrf_core.xml'
        Updating fieldmapper
        Updating web_fieldmapper
        Refreshing proximity of org units
        Successfully updated the organization proximity
        Done</computeroutput>
-</screen>
+                                       </screen>
                                </step>
                                <step>
                                        <para>As the <systemitem class="username">root</systemitem> user, restart the
                                        Apache Web server:</para>
-<screen>
-       <userinput>
+                                       <screen>
+                                               <userinput>
        # as the root user:
        /etc/init.d/apache2 restart</userinput>
-</screen>
+                                       </screen>
                                        <note>If the Apache Web server was running when you started the OpenSRF
                                        services, you might not be able to successfully log into the OPAC or Staff
                                        Client until the Apache Web server has been restarted.</note>
                                <command>srfsh</command> commands, type <userinput>help</userinput> at the prompt.
                                As the <systemitem class="username">opensrf</systemitem> user,
                                execute the following commands to test your Evergreen connection:</para>
-<screen>
-       <userinput>
+                               <screen>
+                                       <userinput>
        # as the opensrf user:
        /openils/bin/srfsh</userinput>
-       <computeroutput>
+                                       <computeroutput>
        srfsh% <userinput>login admin open-ils</userinput>
        Received Data: "250bf1518c7527a03249858687714376"
        ------------------------------------
        ------------------------------------
        Request Completed Successfully
        Request Time in seconds: 1.336568
-       ------------------------------------
-       </computeroutput>
-</screen>
+       ------------------------------------</computeroutput>
+                               </screen>
                                <para>If this does not work, try the following:</para>
                                <itemizedlist>
                                        <listitem>
                                                <para>As the <systemitem class="username">opensrf</systemitem> user, run the
                                                <filename>settings-tester.pl</filename> utility to review your Evergreen
                                                installation for any system configuration problems:</para>
-<screen>
-       <userinput>
+                                               <screen>
+                                                       <userinput>
        # as the opensrf user:
        cd /home/opensrf
        ./Evergreen-ILS-1.6.1.2/Open-ILS/src/support-scripts/settings-tester.pl</userinput>
-</screen>
+                                               </screen>
                                                <para>If the output of <command>settings-tester.pl</command> does not help you
                                                find the problem, please do not make any significant changes to your
                                                configuration.</para>
                                version 3.0 and later on Ubuntu and Debian distributions).</para>
                                <para>As the <systemitem class="username">root</systemitem> user, start the Staff Client
                                as shown:</para>
-<screen>
-       <userinput>
+                               <screen>
+                                       <userinput>
        # as the root user:
        xulrunner /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client/build/application.ini</userinput>
-</screen>
+                               </screen>
                                <para>A login screen for the Staff Client similar to this should appear:</para>
                                <mediaobject>
                                        <alt>Logging into the Staff Client</alt>
                                commands. Note the use of <emphasis>restart</emphasis> to force the new Evergreen
                                modules to be reloaded even if the Apache server is already running. Any problems found
                                with your configuration files should be displayed:</para>
-<screen>
-       <userinput>
+                               <screen>
+                                       <userinput>
        # as the root user:
        apache2ctl configtest &amp;&amp; /etc/init.d/apache2 restart</userinput>
-</screen>
+                               </screen>
                        </simplesect>
                        <simplesect xml:id="serversideinstallation-stopping">
                                <title>Stopping Evergreen</title>
                                Evergreen services.</para>
                                <para>As the <systemitem class="username">opensrf</systemitem> user, stop all Evergreen
                                services by using the following command:</para>
-<screen>
-       <userinput>
+                               <screen>
+                                       <userinput>
        # as the opensrf user
        #   stop the server; use "-l" to force hostname to be "localhost"
        osrf_ctl.sh -l -a stop_all</userinput>
-</screen>
+                               </screen>
                                <note>You can also stop Evergreen services <emphasis role="bold">without</emphasis> the
                                <option>-l</option> flag, but the <command>osrf_ctl.sh</command> utility must know the
                                fully qualified domain name for the system on which it will execute. That hostname may
                                <para>You used the command <command>openssl</command> in an earlier step to
                                temporarily create a new SSL key for the Apache server (see 
                                <xref linkend="serversideinstallation-createsslcertificate"/> for further
-                               information).  This self-signed security certificate was adequate during
+                               information). This self-signed security certificate was adequate during
                                testing and development, but will continue to generate warnings in the Staff
                                Client and browser. For a public production server you should configure or
                                purchase a signed SSL certificate.</para>
                </section>
                <section xml:id="serversideinstallation-virtual">
                        <title>Installing In Virtualized <systemitem class="osname">Linux</systemitem> Environments</title>
-                       <para>This section describes the installation of Evergreen software in so-called "virtualized"
-                       software environments. Evergreen software runs as a native application on any of several
-                       well-known x86 (32-bit) and x86-64 (64-bit) <systemitem class="osname">Linux</systemitem>
-                       distributions including <systemitem class="osname">Ubuntu</systemitem> and 
-                       <systemitem class="osname">Debian</systemitem> but it does not run as a native application 
-                       on the <systemitem class="osname">Microsoft Windows</systemitem> operating system. 
-                       However, it is possible to execute Evergreen on a <systemitem class="osname">Windows</systemitem> 
-                       host system by running it within a virtual Linux-guest installation, which itself executes 
-                       on the <systemitem class="osname">Windows</systemitem> system. 
-                       The <systemitem class="osname">Linux</systemitem> environment is fully emulated and acts 
-                       (within limits) just as if it were executing on a real standalone system.</para>
-                       <para>This technique of emulating a <systemitem class="osname">Linux</systemitem> environment on
-                       a <systemitem class="osname">Windows</systemitem> host is a practical way to install and run an
-                       Evergreen system if it is not possible to dedicate a physical machine solely as a 
-                       <systemitem class="osname">Linux</systemitem> host for Evergreen. This architecture is not
-                       recommended for large scale systems since there are performance limitations to running Evergreen
-                       in a virtualized environment. However, it is a reasonable architecture for smaller experimental
-                       systems, as a proof of concept, or as a conference-room pilot.</para>
-                       <simplesect>
+                       <para>This section describes the installation of Evergreen software in so-called
+                       "virtualized" software environments running on the
+                       <systemitem class="osname">Microsoft Windows</systemitem> operating system.
+                       Evergreen software runs as a native application
+                       on any of several well-known x86 (32-bit) and x86-64 (64-bit) 
+                       <systemitem class="osname">Linux</systemitem> distributions including 
+                       <systemitem class="osname">Ubuntu</systemitem> and 
+                       <systemitem class="osname">Debian</systemitem>, but will not run directly on 
+                       the <systemitem class="osname">Microsoft Windows</systemitem> operating system.
+                       Instead, Evergreen executes within an encapsulated virtual
+                       <systemitem class="osname">Linux</systemitem> "guest" installation,
+                       which itself executes directly on <systemitem class="osname">Windows</systemitem>.
+                       The <systemitem class="osname">Linux</systemitem> environment is fully emulated 
+                       and  acts (within limits) just as if it were executing on a real standalone system.</para>
+                       <para>This technique of emulating a <systemitem class="osname">Linux</systemitem>
+                       environment on a <systemitem class="osname">Windows</systemitem> host is a practical
+                       way to install and run an Evergreen system if it is not possible to dedicate a
+                       physical machine solely as a <systemitem class="osname">Linux</systemitem> host, but
+                       the architecture is not recommended for large scale systems. There are performance
+                       limitations to running Evergreen in a virtualized environment, since the
+                       virtualization application itself consumes memory and contributes to the CPU load on
+                       the <systemitem class="osname">Windows</systemitem> host system. The emulated
+                       Evergreen environment will execute more slowly than if it were a standalone system.
+                       However, it is still a reasonable architecture for smaller experimental systems or as
+                       a proof of concept.</para>
+                       <section>
                                <title>Installing Virtualization Software</title>
                                <para>As described above, Evergreen can be installed on top of an emulated
-                               <systemitem class="osname">Linux</systemitem> environment. The 
-                               <systemitem class="osname">Linux</systemitem> environment, in turn, is installed 
-                               on top of a software application such as <application>"VirtualBox"</application>,
-                               <application>"VMware"</application> or <application>"VirtualPC"</application> which must
-                               first be installed on the <systemitem class="osname">Windows</systemitem> system. This
-                               section contains step-by-step examples that show installing popular virtualization
-                               applications on a <systemitem class="osname">Windows</systemitem> host system. Following
-                               this section are further descriptions of installing 
-                               <systemitem class="osname">Linux</systemitem> and Evergreen systems using that 
-                               virtualization software.</para>
-                               <section>
+                               <systemitem class="osname">Linux</systemitem> environment which, in turn, 
+                               is installed on top of a software application such as
+                               <application>"VirtualBox"</application> or <application>"VMware"</application>
+                               executing on <systemitem class="osname">Windows</systemitem>.
+                               This section contains step-by-step examples on installing popular virtualization
+                               applications on a <systemitem class="osname">Windows</systemitem> host system. 
+                               Following this section are further descriptions of installing 
+                               <systemitem class="osname">Linux</systemitem> and Evergreen systems on top
+                               of that virtualization software.</para>
+                               <section xml:id="serversideinstallation-virtual-vbox-install">
                                        <title>Installing <application>"VirtualBox"</application> Virtualization Software</title>
                                        <para>This section reviews installation of the
                                        <application>"VirtualBox"</application> application on 
-                                       <systemitem class="osname">WindowsXP Professional (SP2)</systemitem>. 
-                                       Download the latest edition of <application>VirtualBox</application> from their official website: 
-                                       <link xl:href="http://virtualbox.org" xl:title="virtual box">http://virtualbox.org</link>
-                                       and follow the on screen instructions to install the software.</para>
+                                       <systemitem class="osname">WindowsXP Professional (SP3)</systemitem>.
+                                       Download the latest version of the
+                                       <application>VirtualBox</application> from the official website:
+                                       <ulink url="http://www.virtualbox.org/wiki/Downloads">
+                                       http://www.virtualbox.org/wiki/Downloads</ulink>,
+                                       then run the executable file. Continue with the steps shown in the
+                                       next five figures until the software has been successfully
+                                       installed. The following example shows the installation of VirtualBox
+                                       version 3.8.2 .</para>
+                                       <figure>
+                                               <title>Starting the Windows installation of <application>VirtualBox</application></title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vbox-install-1.png" scalefit="0" width="70%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure>
+                                               <title>Welcome to <application>VirtualBox</application> setup wizard</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vbox-install-2.png" scalefit="0" width="70%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure>
+                                               <title>Accept the license agreement</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vbox-install-3.png" scalefit="0" width="70%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure>
+                                               <title>Waiting for installation to complete</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vbox-install-4.png" scalefit="0" width="70%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure>
+                                               <title>Installation is complete; start <application>VirtualBox</application></title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vbox-install-5.png" scalefit="0" width="70%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <para>At this point, <application>VirtualBox</application> has been
+                                       installed and started for the first time. Please continue with
+                                       <xref linkend="serversideinstallation-virtual-install-linux-ev"/> 
+                                       for further instructions on the next step: installing the
+                                       <systemitem class="osname">Linux</systemitem> / Evergreen distribution.</para>
                                </section>
                                <section>
-                                       <title>Installing VMware Virtualization Software</title>
-                                       <indexterm>
-                                               <primary>virtualization software</primary>
-                                               <secondary>VMware</secondary>
-                                       </indexterm>
-                                       <para>This section reviews installation of the
-                                       <application>"VMware"</application> application on
-                                       <systemitem class="osname">WindowsXP Professional (SP2)</systemitem>. 
-                                       Find and Download the free virtual machine software of from the VMware
-                                       official website:
-                                       <ulink url="http://downloads.vmware.com">http://downloads.vmware.com</ulink> 
-                                       and follow the on-screen instructions.</para>
+                                       <title>Installing <application>"VMware"</application> Virtualization Software</title>
+                                       <para>For instructions on installing <application>VMware</application>,
+                                       visit the official website <ulink url="http://www.vmware.com/">
+                                       http://www.vmware.com/</ulink>. Then continue with
+                                       <xref linkend="serversideinstallation-virtual-install-linux-ev"/> for
+                                       further instructions on the next step: installing the 
+                                       <systemitem class="osname">Linux</systemitem> / Evergreen distribution.</para>
                                </section>
-                       </simplesect>
-                       <simplesect xml:id="serversideinstallation-virtual-install-linux-ev">
-                               <title>Installing <systemitem class="osname">Linux</systemitem> / 
-                                               Evergreen on Virtualization Software</title>
-                               <para>After the virtualization software is installed and running, there are two ways to
-                               continue with installing <systemitem class="osname">Linux</systemitem> and Evergreen
-                               software in the new virtualized environment:</para>
+                       </section>
+                       <section xml:id="serversideinstallation-virtual-install-linux-ev">
+                               <title>Installing <systemitem class="osname">Linux</systemitem>
+                                / Evergreen on Virtualization Software</title>
+                               <para>After the virtualization software is installed and running, there are
+                               two ways to continue with installing 
+                               <systemitem class="osname">Linux</systemitem> and Evergreen software in the new
+                               virtualized environment:</para>
                                <orderedlist>
                                        <listitem>
-                                               <para>Download and install a prebuilt software image that contains a
-                                               working <systemitem class="osname">Linux</systemitem> / Evergreen system
-                                               (see <xref linkend="serversideinstall-virtual-prebuilt"/> for
+                                               <para>Download and install a prebuilt software image that
+                                               contains a working 
+                                               <systemitem class="osname">Linux</systemitem> / Evergreen
+                                               system (see 
+                                               <xref linkend="serversideinstall-virtual-prebuilt"/> for
                                                details)</para>
                                        </listitem>
                                        <listitem>
-                                               <para>Manually install a <systemitem class="osname">Linux</systemitem>
-                                               guest system, then manually install Evergreen on it.</para>
+                                               <para>Manually install a 
+                                               <systemitem class="osname">Linux</systemitem> guest system,
+                                               then manually install Evergreen on it (see 
+                                               <xref linkend="serversideinstall-virtual-manual"/> for
+                                               details)</para>
                                        </listitem>
                                </orderedlist>
                                <para>We review each method in the following sections.</para>
                                <section xml:id="serversideinstall-virtual-prebuilt">
                                        <title>Download and install a prebuilt software image</title>
-                                       <para>You can download a prebuilt software image that, when installed with your
-                                       virtualization software, emulates a 
-                                       <systemitem class="osname">Linux</systemitem> guest system containing a running 
-                                       Evergreen distribution. The image is essentially a snapshot of a hard disk from
-                                       a fully configured, functional <systemitem class="osname">Linux</systemitem>
-                                       system with Evergreen already installed.</para>
-                                       <para>We recommend this approach if you wish to get Evergreen running quickly
-                                       with minimal attention to configuration. After reviewing only a few
-                                       configuration details you can have a working Evergreen system that integrates
-                                       smoothly with the rest of your network. See 
-                                       <xref linkend="serversideinstall-virtual-versions"/> for a list of prebuilt 
-                                       software images that are currently available to download and install</para>
-                                       <note>DISCLAIMER: The following virtual images have been contributed by members
-                                       of the Evergreen community for the purposes of testing, evaluation, training,
-                                       and development.</note>
+                                       <para>You can download a prebuilt software image that, when installed
+                                       on your virtualization software, emulates a 
+                                       <systemitem class="osname">Linux</systemitem> guest system containing
+                                       a running Evergreen distribution. The image is essentially a snapshot
+                                       of a hard disk from a fully configured, functional 
+                                       <systemitem class="osname">Linux</systemitem> system with Evergreen
+                                       already installed. It is even possible to install a software image
+                                       that is preloaded with useful data, e.g., Gutenberg records.</para>
+                                       <para>We recommend this approach if you wish to get Evergreen running
+                                       quickly with minimal attention to configuration. After adjusting only
+                                       a few configuration details you can have a working Evergreen system
+                                       that integrates smoothly with the rest of your network. See 
+                                       <xref linkend="serversideinstall-virtual-versions"/> for a list of
+                                       prebuilt software images that are currently available to download and
+                                       install.</para>
+                                       <note>Evergreen servers and staff clients must match. For example, if
+                                       you are running server version 1.4.0.1, you should use version 1.4.0.1
+                                       of the staff client.</note>
+                                       <note>DISCLAIMER: The following virtual images have been contributed
+                                       by members of the Evergreen community for the purposes of testing,
+                                       evaluation, training, and development.</note>
                                        <table xml:id="serversideinstall-virtual-versions">
                                                <?dbfo keep-together="always" ?>
                                                <title>Linux / Evergreen Virtual Images</title>
                                                <tgroup align="left" cols="4" colsep="1" rowsep="1">
-                                                       <colspec colname="linux_version" colnum="1" colwidth="1.0*"/>
-                                                       <colspec colname="evergreen_version" colnum="2" colwidth="1.0*"/>
-                                                       <colspec colname="image" colnum="3" colwidth="3.0*"/>
-                                                       <colspec colname="comments" colnum="4" colwidth="1.0*"/>
+                                                       <colspec colname="Linux_version" colnum="1" colwidth="2*"/>
+                                                       <colspec colname="EV_version" colnum="2" colwidth="1*"/>
+                                                       <colspec colname="download_link" colnum="3" colwidth="1*"/>
+                                                       <colspec colname="comments" colnum="4" colwidth="3*"/>
                                                        <thead>
                                                                <row>
                                                                        <entry>Linux Version</entry>
                                                        </thead>
                                                        <tbody>
                                                                <row>
-                                                                       <entry>Debian lenny (5.0)</entry>
+                                                                       <entry>Debian "Lenny" (5.0)</entry>
+                                                                       <entry>1.6.1.4</entry>
+                                                                       <entry>
+                                                                               <ulink url="http://www.open-ils.org/~denials/Evergreen_1_6_1_4_Lenny.zip">
+                                                                       download</ulink>
+                                                                       </entry>
+                                                                       <entry>VirtualBox image (no preloaded data)</entry>
+                                                               </row>
+                                                               <row>
+                                                                       <entry>Debian "Lenny" (5.0)</entry>
                                                                        <entry>1.6.0.1</entry>
                                                                        <entry>
-                                                                               <ulink url="http://www.open-ils.org/~denials/Evergreen1601_DebianLenny.zip"> download </ulink>
+                                                                               <ulink url="http://www.open-ils.org/~denials/Evergreen1601_DebianLenny.zip">
+                                                                       download</ulink>
                                                                        </entry>
-                                                                       <entry>VirtualBox image</entry>
+                                                                       <entry>VirtualBox image (no preloaded data)</entry>
                                                                </row>
                                                                <row>
-                                                                       <entry>Ubuntu karmic koala (9.10)</entry>
+                                                                       <entry>Ubuntu "Karmic Koala" (9.10)</entry>
                                                                        <entry>1.6.0.0</entry>
                                                                        <entry>
-                                                                               <ulink url="http://www.open-ils.org/~denials/Evergreen-1600-Karmic.zip"> download </ulink>
+                                                                               <ulink url="http://www.open-ils.org/~denials/Evergreen-1600-Karmic.zip">
+                                                                       download</ulink>
+                                                                       </entry>
+                                                                       <entry>VirtualBox image (no preloaded data)</entry>
+                                                               </row>
+                                                               <row>
+                                                                       <entry>Ubuntu "Hardy Heron" (8.04)</entry>
+                                                                       <entry>1.2.3.1</entry>
+                                                                       <entry>
+                                                                               <ulink url="http://open-ils.org/~denials/Ubuntu804.zip">
+                                                                       download</ulink>
+                                                                       </entry>
+                                                                       <entry>VirtualBox image (no preloaded data)</entry>
+                                                               </row>
+                                                               <row>
+                                                                       <entry>Debian Etch (4.0)</entry>
+                                                                       <entry>1.2.2.3</entry>
+                                                                       <entry>
+                                                                               <ulink url="http://evergreen-ils.org/~denials/Evergreen_Debian_1.2.2.3.zip">
+                                                                       download</ulink>
+                                                                       </entry>
+                                                                       <entry>VMware image (preloaded with 13,000 Gutenberg records)</entry>
+                                                               </row>
+                                                               <row>
+                                                                       <entry>Ubuntu "Gutsy Gibbon" (7.10)</entry>
+                                                                       <entry>1.2.1.4</entry>
+                                                                       <entry>
+                                                                               <ulink url="http://www.open-ils.org/downloads/vmware/Evergreen_1.2.1.4_on_Ubuntu_7.10.zip">
+                                                                       download</ulink>
+                                                                       </entry>
+                                                                       <entry>VMware image, contributed by
+                                                                       <ulink url="http://library.calvin.edu/">
+                                                                       the Hekman Library, Calvin College</ulink></entry>
+                                                               </row>
+                                                               <row>
+                                                                       <entry>Gentoo</entry>
+                                                                       <entry>1.1.5</entry>
+                                                                       <entry>
+                                                                               <ulink url="http://www.open-ils.org/~denials/Evergreen_1.1.5_Gentoo_x86.zip">
+                                                                       download </ulink>
                                                                        </entry>
-                                                                       <entry>VirtualBox image</entry>
+                                                                       <entry>VMware image on Gentoo, courtesy of
+                                                                       <ulink url="http://coffeecode.net/">Dan Scott</ulink>,
+                                                                       <ulink url="http://laurentian.ca/library">Laurentian University</ulink>
+                                                                       (file size is 1.1GB)</entry>
                                                                </row>
                                                        </tbody>
                                                </tgroup>
                                        </table>
+                                       <para>For the following example, we have already installed the
+                                       <application>VirtualBox</application> application (see
+                                       <xref linkend="serversideinstallation-virtual-vbox-install"/> for details). 
+                                       Continue with the steps as shown; refer to the accompanying figures for further
+                                       information:</para>
                                        <procedure>
-                                               <title>VirtualBox Example</title>
-                                               <indexterm>
-                                                       <primary>virtualization software</primary>
-                                                       <secondary>VirtualBox</secondary>
-                                               </indexterm>
                                                <step>
                                                        <para>Start VirtualBox for the first time and select
                                                        <menuchoice><guimenu>File</guimenu><guimenuitem>VirtualBox Media Manager</guimenuitem><guimenuitem>Add</guimenuitem></menuchoice>
                                                        to locate the prebuilt software image just downloaded (the
                                                        example shows it was extracted from the original
-                                                       <filename class="extension">zip</filename> file into a temporary directory
-                                                       <filename class="directory">C:\temp</filename>).</para>
+                                                       <literal>.ZIP</literal> file into a temporary directory
+                                                       <literal>C:\temp</literal>). See 
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-2"/> 
+                                                       for details.</para>
                                                </step>
                                                <step>
-                                                       <para>After selecting the file, click <guibutton>'Open'</guibutton> to import it.</para>
+                                                       <para>After selecting the file, click
+                                                       <guibutton>Open</guibutton> to import it (see 
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-3"/> 
+                                                       for details).</para>
                                                </step>
                                                <step>
-                                                       <para>Then click <guibutton>'OK'</guibutton> to save the selection
-                                                       and return to the VirtualBox Media Manager</para>
+                                                       <para>Then click <guibutton>OK</guibutton> to save the
+                                                       selection and return to the VirtualBox Media Manager (see
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-4"/>
+                                                       for details).</para>
                                                </step>
                                                <step>
-                                                       <para>Click <guibutton>'New'</guibutton>, then <guibutton>'Next'</guibutton> 
-                                                       to continue and create a new virtual machine (VM).</para>
+                                                       <para>Click <guibutton>New</guibutton> to start the "Virtual
+                                                       Machine Wizard", then <guibutton>Next</guibutton> to continue
+                                                       and create a new virtual machine (VM) 
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-5"/>).</para>
                                                </step>
                                                <step>
-                                                       <para>Create a new name for the VM and set the operating system
-                                                       type, then click <guibutton>'Next'</guibutton>.</para>
+                                                       <para>Create a new name for the VM and set the operating
+                                                       system type, then click <guibutton>Next</guibutton> (see 
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-6"/>).</para>
                                                </step>
                                                <step>
-                                                       <para>Set the memory size (at least 512Mb),
-                                                       then click <guibutton>'Next'</guibutton>.</para>
+                                                       <para>Set the memory size (we chose the default value of
+                                                       512Mb), then click <guibutton>Next</guibutton> (see 
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-7"/>).</para>
                                                </step>
                                                <step>
                                                        <para>Edit the Virtual Hard Disk configuration settings; click
-                                                       the radio boxes <guilabel>Boot Hard Disk</guilabel> and
-                                                       <guilabel>Use existing hard disk</guilabel>
-                                                       and ensure that the disk name <guilabel>Evergreen1601_DebianLenny.vmdk</guilabel>
-                                                       is selected. Click <guibutton>'Finish'</guibutton> to finish the
-                                                       setup.</para>
+                                                       the radio boxes "Boot Hard Disk" and "Use existing hard disk"
+                                                       and ensure that the disk name "Evergreen1601_DebianLenny.vmdk"
+                                                       is selected. Click <guibutton>Finish</guibutton> to finish the
+                                                       setup (see 
+                                                       <xref linkend="serversideinstallation-virtual-vm-install-8"/>).</para>
                                                </step>
                                                <step>
                                                        <para>Install the <application>VirtualBox Guest
                                                        Additions</application> (really a required upgrade to
-                                                       VirtualBox)</para>
+                                                       VirtualBox).</para>
                                                </step>
                                                <step>
-                                                       <para>Return to VirtualBox and see the summary of the VM just
-                                                       created. Click <guibutton>'Start'</guibutton> to boot the new VM.</para>
+                                                       <para>Return to VirtualBox and see the summary of the VM just created
+                                                       (see <xref linkend="serversideinstallation-virtual-vm-install-9"/>
+                                                       and <xref linkend="serversideinstallation-virtual-vm-install-10"/>).
+                                                       Click <guibutton>Start</guibutton> to boot the new VM, then 
+                                                       log in with username <literal>root</literal> and
+                                                       password <literal>evergreen</literal> to continue.</para>
                                                </step>
+                                       </procedure>
+                                       <para>At this point you have a running 
+                                       <systemitem class="osname">Linux</systemitem> / Evergreen system. 
+                                       If you need to modify the Evergreen configuration in any way, review
+                                       the sectons of the standard Evergreen installation instructions in
+                                       <xref linkend="serversideinstallation-ubuntudebian"/> that deal with
+                                       configuration.</para>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-2">
+                                               <title>Starting <application>VirtualBox</application> for the first time</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-2.png" scalefit="0" width="60%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-3">
+                                               <title>Selecting the software image in Virtual Media Manager</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-3.png" scalefit="0" width="60%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-4">
+                                               <title>New software image added to <application>VirtualBox</application></title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-4.png" scalefit="0" width="40%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-5">
+                                               <title>Creating a new VM</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-5.png" scalefit="0" width="50%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-6">
+                                               <title>Setting the VM name and OS type</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-6.png" scalefit="0" width="50%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-7">
+                                               <title>Setting memory size</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-7.png" scalefit="0" width="50%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-8">
+                                               <title>Setting up the Virtual Hard Disk</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-8.png" scalefit="0" width="50%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-9">
+                                               <title>Finishing definition of new VM</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-9.png" scalefit="0" width="50%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                                       <figure xml:id="serversideinstallation-virtual-vm-install-10">
+                                               <title>Summary of the new VM</title>
+                                               <mediaobject>
+                                                       <imageobject>
+                                                               <imagedata fileref="../media/serversideinstallation-virtual-vm-install-10.png" scalefit="0" width="50%"/>
+                                                       </imageobject>
+                                               </mediaobject>
+                                       </figure>
+                               </section>
+                               <section xml:id="serversideinstall-virtual-manual">
+                                       <title>Manually install <systemitem class="osname">Linux</systemitem> and Evergreen</title>
+                                       <para>Instead of installing a pre-built, pre-configured virtual image
+                                       of <systemitem class="osname">Linux</systemitem> containing the
+                                       Evergreen software, you could also manually install a 
+                                       <systemitem class="osname">Linux</systemitem> guest system, then install
+                                       Evergreen from scratch on that system.</para>
+                                       <para>We recommend this approach if you need to specially configure
+                                       either the <systemitem class="osname">Linux</systemitem> system or
+                                       Evergreen itself. This will require a detailed review of both
+                                       <systemitem class="osname">Linux</systemitem> and Evergreen
+                                       configuration details. You are essentially doing a normal Evergreen
+                                       installation on a <systemitem class="osname">Linux</systemitem>
+                                       system; it just happens that 
+                                       <systemitem class="osname">Linux</systemitem> is running within a
+                                       virtualized environment on a <systemitem class="osname">Windows</systemitem> 
+                                       system. See <xref linkend="serversideinstallation-ubuntudebian"/> for 
+                                       information on the normal Evergreen installation, then continue with this
+                                       section.</para>
+                                       <para>For the following example, we have already installed the
+                                       <application>VirtualBox</application> application (see 
+                                       <xref linkend="serversideinstallation-virtual-vbox-install"/> for details).
+                                       Continue with the steps as shown; refer to the accompanying figures
+                                       for further information:</para>
+                                       <procedure>
                                                <step>
-                                                       <para>See the start of the <systemitem class="osname">Linux</systemitem>
-                                                       boot sequence. Choose <guimenuitem>Debian Gnu/Linux, kernel
-                                                       2.6.26-2-686</guimenuitem> from the startup menu and click
-                                                       <guibutton>'Enter'</guibutton> to start 
-                                                       <systemitem class="osname">Linux</systemitem> and Evergreen. 
-                                                       After some delay you should see the command line prompt 
-                                                       <prompt>debian-lenny login:</prompt>. Log in with username
-                                                       <userinput>root </userinput> and password <userinput>evergreen</userinput>
-                                                       to continue.</para>
+                                                       <para>Download and install an appropriate version of the
+                                                       standard <systemitem class="osname">Ubuntu</systemitem> software
+                                                       distribution on <application>"VirtualBox"</application>.</para>
+                                               </step>
+                                               <step>
+                                                       <para>Start (boot) <systemitem class="osname">Ubuntu</systemitem>.</para>
+                                               </step>
+                                               <step>
+                                                       <para>Install Evergreen on the
+                                                       <systemitem class="osname">Ubuntu</systemitem> system.</para>
                                                </step>
                                        </procedure>
                                </section>
-                       </simplesect>
+                               <section>
+                                       <title>Summary</title>
+                                       <para>Whether you install a pre-built, pre-configured virtual image of
+                                       <systemitem class="osname">Linux</systemitem> already containing the
+                                       Evergreen software (see <xref linkend="serversideinstall-virtual-prebuilt"/>),
+                                       or you install a plain virtual 
+                                       image <systemitem class="osname">Linux</systemitem> and then install
+                                       Evergreen from scratch (see <xref linkend="serversideinstall-virtual-manual"/>), 
+                                       your <systemitem class="osname">Windows</systemitem> system is now hosting 
+                                       an <systemitem class="osname">Linux</systemitem> system, which itself is
+                                       hosting the Evergreen distribution. So far as Evergreen is concerned,
+                                       it is happily executing in a standard 
+                                       <systemitem class="osname">Linux</systemitem> environment and should 
+                                       behave as if it were executing on a standalone 
+                                       <systemitem class="osname">Linux</systemitem> system.</para>
+                               </section>
+                       </section>
                </section>
        </section>
 </chapter>