Title: Installation
Notice:    Licensed to the Apache Software Foundation (ASF) under one
           or more contributor license agreements.  See the NOTICE file
           distributed with this work for additional information
           regarding copyright ownership.  The ASF licenses this file
           to you under the Apache License, Version 2.0 (the
           "License"); you may not use this file except in compliance
           with the License.  You may obtain a copy of the License at
           .
             http://www.apache.org/licenses/LICENSE-2.0
           .
           Unless required by applicable law or agreed to in writing,
           software distributed under the License is distributed on an
           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
           KIND, either express or implied.  See the License for the
           specific language governing permissions and limitations
           under the License.

This portion of the site is for documentation on installing VCL and for documentation
explaining configuration items that an installer would typically do.


[VCL 2.5 Installation Guide - Current Release](/docs/VCL25InstallGuide.html)


Supplemental configuration guides

 - [Upgrade from previous versions](/docs/UpgradePreviousVersions/upgrades.html)

 - [Configuring LDAP Authentication](/docs/ldapauth.html)

 - [Configuring Shibboleth Authentication](/docs/shibauth.html)

 - [Creating Custom Themes](/docs/themes.html)

 - [phpMyAdmin Installation and Configuration](/docs/installphpmyadmin)

 - [VMware Configuration](/docs/vmwareconfiguration)

 - [Creating Base images](/docs/baseimagecreation)


<BR>
<BR>
<BR>
Archived Install guides:

[VCL 2.4.2 Installation Guide](/docs/VCL242InstallGuide.html)<br>
[VCL 2.3.2 Installation Guide](/docs/VCL232InstallGuide.html)<br>
[VCL 2.3.1 Installation Guide](/docs/VCL231InstallGuide.html)<br>
[VCL 2.3 Installation Guide](/docs/VCL23Installation.html)
