# Installation from the tarball

## Get the tarball

Get the tarball from download page. You can also find on this page the SVN tarball if you want to test latest features.

The content of the SVN tarball is not the same as the official tarball. Please see the next chapter to learn how build an official tarball from SVN files.

## Build the tarball from SVN

Either checkout or export the SVN repository, or extract the SVN tarball to get the SVN files on your disk.

Then go to trunk directory:

    cd trunk

And run the “dist” target:

    make dist

The generated tarball is in the current directory.

## Extraction

Just run the tar command:

    tar zxvf lemonldap-ng-*.tar.gz

## Installation

First check and install the prerequisites.

For full install:

    cd lemonldap-ng-*
    make
    make configure
    make test
    sudo make install

You can also build and install French documentation :

    make fr-doc
    make install_fr_doc_site

Note that you need to have the OmegaT tool to generate the doc.

You can modify location of default storage configuration file in configure target:

    sudo make configure STORAGECONFFILE=/etc/lemonldap-ng/lemonldap-ng.ini

You can choose other Makefile targets:

- Perl libraries install :
  - install_libs (all Perl libraries)
  - install_portal_libs
  - install_manager_libs
  - install_handler_libs
- Binaries install :
  - install_bin (/usr/local/lemonldap-ng/bin)
- Web sites install :
  - install_site (all sites including install_doc_site)
  - install_portal_site (/usr/local/lemonldap-ng/htdocs/portal)
  - install_manager_site (/usr/local/lemonldap-ng/htdocs/manager)
  - install_handler_site (/usr/local/lemonldap-ng/handler)
- Documentation install :
  - install_doc_site (/usr/local/lemonldap-ng/htdocs/doc)
  - install_examples_site (/usr/local/lemonldap-ng/examples)

You can also pass parameters to the make install command, with this syntax:

    sudo make install PARAM=VALUE PARAM=VALUE ...

Available parameters are:

- ERASECONFIG: set to 0 if you want to keep your configuration files (default: 1)
- DESTDIR: only for packaging, install the product in a jailroot (default: “”)
- PREFIX: installation directory (default: /usr/local)
- STORAGECONFFILE: location of default storage configuration file (default: /usr/local/lemonldap-ng/etc/lemonldap-ng.ini)
- CRONDIR: Cronfile directory (default: $PREFIX/etc/lemonldap-ng/cron.d)
- APACHEUSER: user running Apache
- APACHEGROUP: group running Apache
- DNSDOMAIN: Main DNS domain (default: example.com)
- APACHEVERSION: Apache major version (default: 2)
- VHOSTLISTEN: how listen parameter is configured for virtual hosts in Apache (default: *:80)

For Debian/Ubuntu, you can use:

    make debian-install

or:

    make ubuntu-install

See also Debian/Ubuntu installation documentation.

## Link Apache configuration

By default, Apache configuration files will be installed in `/usr/local/lemonldap-ng/etc/`. You have to include them in Apache main configuration, for example:

    include /usr/local/lemonldap-ng/etc/portal-apache2.conf
    include /usr/local/lemonldap-ng/etc/handler-apache2.conf
    include /usr/local/lemonldap-ng/etc/manager-apache2.conf
    include /usr/local/lemonldap-ng/etc/test-apache2.conf

- You can also use symbolic links in `conf.d` Apache directory.
- If you have run the Debian/Ubuntu install command, just use:

    a2ensite manager-apache2.conf
    a2ensite portal-apache2.conf
    a2ensite handler-apache2.conf
    a2ensite test-apache2.conf

Mod Perl must be loaded before LL::NG Apache configuration.

## Install cron jobs

LL::NG use cron jobs to:

- purge old sessions
- clean Handler cache

To install them on system:

    sudo ln -s /usr/local/lemonldap-ng/etc/cron.d/* /etc/cron.d/

## DNS

Configure your DNS server to resolve names with your server IP.

For tests with the configured domain, launch the following :

    cat /usr/local/lemonldap-ng/etc/lemonldap-ng/for_etc_hosts >> /etc/hosts

Follow the next steps.