# documentation:2.0:prereq
Keywords: documentation,2.0,prereq

# Pré-requis et dépendances

## Web Server

To use LemonLDAP::NG, you have the choice of the Web Server :

- Apache 2 with mod_perl
- Nginx with fastcgi

For Apache2, you can use all workers mpm-worker, mpm-prefork and mpm-event. Mpm-worker est plus rapide et LemonLDAP::NG utilise le système de threads pour de meilleures performances. If you have to use mpm-prefork (for example if you use PHP), LemonLDAP::NG will work anyway.

## Perl

Here is the list of Perl modules used in LemonLDAP::NG. Les modules "core" doivent être installés sur le système. Les autres modules ne doivent être installés que s'il est prévu d'utiliser les fonctionnalités associées.

### Core

- Apache::Session
- Cache::Cache
- Clone
- Config::IniFiles
- Convert::PEM
- Crypt::OpenSSL::Bignum
- Crypt::OpenSSL::RSA
- Crypt::OpenSSL::X509
- Crypt::Rijndael
- DBI
- Digest::HMAC
- Digest::SHA
- Email::Sender
- GD::SecurityImage
- HTML::Template
- IO::String
- JSON
- LWP::UserAgent
- LWP::Protocol::https
- MIME::Base64
- MIME::Entity
- Mouse
- Net::CIDR
- Net::CIDR::Lite
- Net::LDAP
- Plack
- Regexp::Assemble
- Regexp::Common
- SOAP::Lite
- String::Random
- Test::Pod
- Unicode::String
- URI

### Old Notifications format

- XML::LibXML
- XML::LibXSLT

### SAML2

- Lasso
- GLib
- XML::Simple

### CAS (module d'authentification)

- AuthCAS

### OpenID

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

### Twitter

- Net::OAuth

### Tests unitaires POD

- Test::POD
- Test::MockObject

### SMTP / réinitialisation de mot-de-passe par courriel

- MIME::Lite
- Email::Date::Format
- String::Random
- Net::SMTP
- MIME::Base64
- Authen::SASL

## Autres

- Jquery (framework javascript) est inclus dans l'archive et les RPMs, mais est une dépendance des versions officielles Debian
- OmegaT is needed to translate offline documentation and build fr-doc packages

## Installer les dépendances sur le système

### APT-GET

Perl dependencies:

    apt-get install libapache-session-perl, libcache-cache-perl, libclone-perl, libconfig-inifiles-perl, libconvert-pem-perl, libcrypt-openssl-bignum-perl, libcrypt-openssl-rsa-perl, libcrypt-openssl-x509-perl, libcrypt-rijndael-perl, libdbd-sqlite3-perl, libdbi-perl, libdigest-hmac-perl, libemail-sender-perl, libgd-securityimage-perl, libglib-perl, libhtml-template-perl, libimage-magick-perl, libio-string-perl, libjson-perl, liblasso-perl, libmime-tools-perl, libmouse-perl, libnet-cidr-lite-perl, libnet-ldap-perl, libnet-openid-consumer-perl, libnet-openid-server-perl, libplack-perl, libregexp-assemble-perl, libregexp-common-perl, libsoap-lite-perl, libstring-random-perl, libtest-mockobject-perl, libtest-pod-perl, libunicode-string-perl, liburi-perl, libwww-perl, libxml-libxml-perl, libxml-libxslt-perl, libxml-simple-perl

Pour Apache:

    apt-get install apache2 libapache2-mod-perl2 libapache2-mod-fcgid

Pour Nginx:

    apt-get install nginx nginx-extras

### YUM

You need EPEL repository. See how you can activate this repository: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse

Perl dependencies:

    yum install perl-Apache-Session perl-LDAP perl-XML-SAX perl-XML-NamespaceSupport perl-HTML-Template perl-Regexp-Assemble perl-Regexp-Common 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 perl-Digest-SHA perl-String-Random perl-MIME-Lite perl-Email-Date-Format perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-X509 perl-Clone perl-Authen-SASL perl-Log-Log4perl perl-Unicode-String perl-Net-CIDR-Lite perl-Cache-Memcached perl-Convert-PEM perl-Mouse perl-Plack perl-GD-SecurityImage

Pour Apache:

    yum install httpd mod_perl mod_fcgid

Pour Nginx:

    yum install nginx

As you need a recent version of Nginx, the best is to install Nginx official packages.