# Prerequisites and dependencies

## Apache

To use LemonLDAP::NG, you have to run an Apache server compiled with mod-perl (version 1.3 or 2.x).

In most of cases, the version of Apache proposed with your Linux distribution match, but some distributions used an experimental version of mod_perl with Apache2 (mod_perl-1.99) which does not work with LemonLDAP::NG. With such distributions (like Debian-3.1), you have to use Apache-1.3 or to use a mod_perl backport (www.backports.org package for Debian works fine).

For Apache2, you can use both mpm-worker and mpm-prefork. Mpm-worker works faster and LemonLDAP::NG use the thread system for best performance. If you have to use mpm-prefork (for example if you use PHP), LemonLDAP::NG will work anyway.

You can use LemonLDAP::NG in an heterogeneous world: the authentication portal and the manager can work in any version of Apache 1.3 or more even if mod_perl is not compiled, with ModPerl::Registry or not… Only the handler need mod_perl. The different handlers can run on different servers with different versions of Apache/mod_perl.

## Perl

Here is the list of Perl modules used in LemonLDAP::NG. Core modules must be installed on the system. Other modules must be installed only if you planned to use the related feature.

### Core

- Apache::Session
- Net::LDAP
- MIME::Base64
- CGI
- LWP::UserAgent
- Cache::Cache
- DBI
- XML::Simple
- CGI::Session
- Regexp::Assemble
- XML::LibXML
- Crypt::Rijndael
- IO::String
- XML::LibXSLT
- HTML::Template
- SOAP::Lite
- Config::IniFiles
- JSON
- Digest::HMAC

### Reset password by mail

- String::Random
- MIME::Lite
- Email::Date::Format

### SAML2

- Lasso
- GLib
- Crypt::OpenSSL::RSA
- Convert::PEM

### CAS

- AuthCAS

### OpenID

- Net::OpenID::Consumer > 1.00
- Net::OpenID::Server > 1.00

### Twitter

- Net::Twitter

### POD unit tests

- Test::POD

## Other

- Jquery (javascript framework) is included in tarball and RPMs, but is a dependency on Debian

## Install dependencies on your system

### APT-GET

    # apt-get install apache2 libapache2-mod-perl2 libapache-session-perl libnet-ldap-perl libcache-cache-perl libdbi-perl perl-modules libwww-perl libcache-cache-perl libxml-simple-perl  libsoap-lite-perl libhtml-template-perl libregexp-assemble-perl libjs-jquery libxml-libxml-perl libcrypt-rijndael-perl libio-string-perl libxml-libxslt-perl libconfig-inifiles-perl libjson-perl libstring-random-perl libemail-date-format-perl libmime-lite-perl libcrypt-openssl-rsa-perl libdigest-hmac-perl

### YUM

Choose a repository which hosted Perl dependencies:

- EPEL repository, you can activate this repository: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse
- RPMForge repository, you can activate this repository: https://rpmrepo.org/RPMforge/Using

    # yum install httpd mod_perl perl-Apache-Session perl-LDAP perl-XML-SAX perl-XML-NamespaceSupport perl-HTML-Template perl-Regexp-Assemble perl-Error perl-IPC-ShareLite perl-Cache-Cache perl-FreezeThaw perl-XML-Simple perl-version perl-CGI-Session perl-DBD-Pg perl-XML-LibXML-Common perl-BSD-Resource perl-XML-LibXML perl-Crypt-Rijndael perl-IO-String perl-XML-LibXSLT perl-SOAP-Lite perl-Config-IniFiles perl-JSON perl-Digest-HMAC