lemonldap-ng/doc/pages/documentation/current/prereq.html
Xavier Guimard ce59789747 Update doc
2019-06-28 16:53:45 +02:00

373 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>documentation:2.0:prereq</title>
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,prereq"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="prereq.html"/>
<link rel="contents" href="prereq.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else -->
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<!-- //endif -->
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:prereq","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script>
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script>
<!-- //endif -->
<!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery-ui/jquery-ui.js"></script>
<!-- //endif -->
</head>
<body>
<div class="dokuwiki export container">
<!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#web_server">Web Server</a></div></li>
<li class="level1"><div class="li"><a href="#perl">Perl</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#core">Core</a></div></li>
<li class="level2"><div class="li"><a href="#deprecated_features">Deprecated features</a></div></li>
<li class="level2"><div class="li"><a href="#saml2">SAML2</a></div></li>
<li class="level2"><div class="li"><a href="#second_factor">Second factor</a></div></li>
<li class="level2"><div class="li"><a href="#specific_authentication_backends">Specific authentication backends</a></div></li>
<li class="level2"><div class="li"><a href="#smtpreset_password_by_mail">SMTP / Reset password by mail</a></div></li>
<li class="level2"><div class="li"><a href="#unit_tests">Unit tests</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#other">Other</a></div></li>
<li class="level1"><div class="li"><a href="#install_dependencies_on_your_system">Install dependencies on your system</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#apt">APT</a></div></li>
<li class="level2"><div class="li"><a href="#yum">YUM</a></div></li>
</ul></li>
</ul>
</div>
</div>
<!-- TOC END -->
<h1 class="sectionedit1" id="prerequisites_and_dependencies">Prerequisites and dependencies</h1>
<div class="level1">
</div>
<!-- EDIT1 SECTION "Prerequisites and dependencies" [1-47] -->
<h2 class="sectionedit2" id="web_server">Web Server</h2>
<div class="level2">
<p>
To use LemonLDAP::NG, you have the choice of the Web Server :
</p>
<ul>
<li class="level1"><div class="li"> Nginx</div>
</li>
<li class="level1"><div class="li"> Apache 2</div>
</li>
<li class="level1"><div class="li"> Any FastCGI or uWSGI compatible Web Server <em>(<strong>Portal and manager only</strong>)</em></div>
</li>
</ul>
<p>
For Apache2, you can use all workers mpm-worker, mpm-prefork and mpm-event. Mpm-worker works faster and LemonLDAP::NG use the thread system for best performance <strong>but since Apache-2.4, mod_perl seems unstable in this configuration</strong>. If you have to use mpm-prefork (for example if you use PHP), LemonLDAP::NG will work anyway.
</p>
<p>
<a href="documentation/llng_deps.png_documentation_2.0_prereq.html" class="media" title="documentation:llng_deps.png"><img src="documentation/llng_deps.5777cea9f5c8fa98053294e9fcbf9e90.png" class="mediacenter" alt="" width="600" /></a>
</p>
</div>
<!-- EDIT2 SECTION "Web Server" [48-594] -->
<h2 class="sectionedit3" id="perl">Perl</h2>
<div class="level2">
<div class="noteclassic">Here the list of Perl modules used in LemonLDAP::NG. Core modules must be installed on the system. Other modules are required only if you plan to use related features.
</div>
</div>
<!-- EDIT3 SECTION "Perl" [595-794] -->
<h3 class="sectionedit4" id="core">Core</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> Apache::Session</div>
</li>
<li class="level1"><div class="li"> Cache::Cache</div>
</li>
<li class="level1"><div class="li"> Clone</div>
</li>
<li class="level1"><div class="li"> Config::IniFiles</div>
</li>
<li class="level1"><div class="li"> Convert::PEM</div>
</li>
<li class="level1"><div class="li"> Cookie::Baker::XS</div>
</li>
<li class="level1"><div class="li"> Crypt::OpenSSL::Bignum</div>
</li>
<li class="level1"><div class="li"> Crypt::OpenSSL::RSA</div>
</li>
<li class="level1"><div class="li"> Crypt::OpenSSL::X509</div>
</li>
<li class="level1"><div class="li"> Crypt::Rijndael</div>
</li>
<li class="level1"><div class="li"> Crypt::URandom</div>
</li>
<li class="level1"><div class="li"> <abbr title="Database Interface">DBI</abbr></div>
</li>
<li class="level1"><div class="li"> Digest::HMAC_SHA1</div>
</li>
<li class="level1"><div class="li"> Digest::MD5</div>
</li>
<li class="level1"><div class="li"> Digest::SHA</div>
</li>
<li class="level1"><div class="li"> Email::Sender</div>
</li>
<li class="level1"><div class="li"> GD::SecurityImage</div>
</li>
<li class="level1"><div class="li"> <abbr title="HyperText Markup Language">HTML</abbr>::Template</div>
</li>
<li class="level1"><div class="li"> HTTP::Headers</div>
</li>
<li class="level1"><div class="li"> HTTP::Request</div>
</li>
<li class="level1"><div class="li"> IO::String</div>
</li>
<li class="level1"><div class="li"> JSON</div>
</li>
<li class="level1"><div class="li"> LWP::UserAgent</div>
</li>
<li class="level1"><div class="li"> LWP::Protocol::https</div>
</li>
<li class="level1"><div class="li"> MIME::Base64</div>
</li>
<li class="level1"><div class="li"> MIME::Entity</div>
</li>
<li class="level1"><div class="li"> Mouse</div>
</li>
<li class="level1"><div class="li"> Net::LDAP</div>
</li>
<li class="level1"><div class="li"> Plack</div>
</li>
<li class="level1"><div class="li"> Regexp::Assemble</div>
</li>
<li class="level1"><div class="li"> Regexp::Common</div>
</li>
<li class="level1"><div class="li"> SOAP::Lite <em>(optional)</em></div>
</li>
<li class="level1"><div class="li"> String::Random</div>
</li>
<li class="level1"><div class="li"> Text::Unidecode <em>(versions ≥ 2.0.5)</em></div>
</li>
<li class="level1"><div class="li"> Unicode::String</div>
</li>
<li class="level1"><div class="li"> <abbr title="Uniform Resource Identifier">URI</abbr></div>
</li>
<li class="level1"><div class="li"> <abbr title="Uniform Resource Identifier">URI</abbr>::Escape</div>
</li>
</ul>
</div>
<!-- EDIT4 SECTION "Core" [795-1504] -->
<h3 class="sectionedit5" id="deprecated_features">Deprecated features</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> Old notifications format:</div>
<ul>
<li class="level2"><div class="li"> XML::LibXML</div>
</li>
<li class="level2"><div class="li"> XML::LibXSLT</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> OpenID 2.0:</div>
<ul>
<li class="level2"><div class="li"> Net::OpenID::Server</div>
</li>
<li class="level2"><div class="li"> Net::OpenID::Consumer</div>
</li>
</ul>
</li>
</ul>
</div>
<!-- EDIT5 SECTION "Deprecated features" [1505-1673] -->
<h3 class="sectionedit6" id="saml2">SAML2</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> <a href="http://lasso.entrouvert.org/" class="urlextern" title="http://lasso.entrouvert.org/" rel="nofollow">Lasso</a></div>
</li>
<li class="level1"><div class="li"> GLib</div>
</li>
<li class="level1"><div class="li"> XML::Simple</div>
</li>
</ul>
</div>
<!-- EDIT6 SECTION "SAML2" [1674-1759] -->
<h3 class="sectionedit7" id="second_factor">Second factor</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> Crypt::U2F::Server::Simple (U2F keys)</div>
</li>
<li class="level1"><div class="li"> Convert::Base32 (TOTP)</div>
</li>
</ul>
</div>
<!-- EDIT7 SECTION "Second factor" [1760-1853] -->
<h3 class="sectionedit8" id="specific_authentication_backends">Specific authentication backends</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> Facebook:</div>
<ul>
<li class="level2"><div class="li"> Net::Facebook::Oauth2</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> Kerberos:</div>
<ul>
<li class="level2"><div class="li"> GSSAPI</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> PAM:</div>
<ul>
<li class="level2"><div class="li"> Authen::PAM</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> Radius:</div>
<ul>
<li class="level2"><div class="li"> Authen::Radius</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> Twitter:</div>
<ul>
<li class="level2"><div class="li"> Net::OAuth</div>
</li>
</ul>
</li>
<li class="level1"><div class="li"> WebID:</div>
<ul>
<li class="level2"><div class="li"> Web::ID</div>
</li>
</ul>
</li>
</ul>
</div>
<!-- EDIT8 SECTION "Specific authentication backends" [1854-2082] -->
<h3 class="sectionedit9" id="smtpreset_password_by_mail">SMTP / Reset password by mail</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> Email::Sender</div>
</li>
<li class="level1"><div class="li"> String::Random</div>
</li>
<li class="level1"><div class="li"> Net::SMTP</div>
</li>
</ul>
</div>
<!-- EDIT9 SECTION "SMTP / Reset password by mail" [2083-2175] -->
<h3 class="sectionedit10" id="unit_tests">Unit tests</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> Test::POD</div>
</li>
<li class="level1"><div class="li"> Test::MockObject</div>
</li>
<li class="level1"><div class="li"> Crypt::U2F::Server</div>
</li>
<li class="level1"><div class="li"> Authen::U2F::Tester</div>
</li>
<li class="level1"><div class="li"> YAML</div>
</li>
</ul>
</div>
<!-- EDIT10 SECTION "Unit tests" [2176-2289] -->
<h2 class="sectionedit11" id="other">Other</h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> Jquery (javascript framework) is included in tarball and RPMs, but is a dependency on Debian official releases</div>
</li>
<li class="level1"><div class="li"> Cache::Memcached : used by SecureToken handler</div>
</li>
</ul>
</div>
<!-- EDIT11 SECTION "Other" [2290-2475] -->
<h2 class="sectionedit12" id="install_dependencies_on_your_system">Install dependencies on your system</h2>
<div class="level2">
<div class="notewarning">You don&#039;t need to install them if you use <abbr title="LemonLDAP::NG">LL::NG</abbr> packages. With <code>apt</code> or <code>yum</code>, dependencies will be automatically installed.
</div>
</div>
<!-- EDIT12 SECTION "Install dependencies on your system" [2476-2675] -->
<h3 class="sectionedit13" id="apt">APT</h3>
<div class="level3">
<p>
Perl dependencies:
</p>
<pre class="code">apt 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 libdbi-perl libdigest-hmac-perl libemail-sender-perl libgd-securityimage-perl libhtml-template-perl libio-string-perl libjson-perl libmime-tools-perl libmouse-perl libnet-ldap-perl libplack-perl libregexp-assemble-perl libregexp-common-perl libsoap-lite-perl libstring-random-perl libunicode-string-perl liburi-perl libwww-perl libxml-simple-perl libxml-libxslt-perl libcrypt-urandom-perl libtext-unidecode-perl libcookie-baker-xs-perl</pre>
<p>
For Apache:
</p>
<pre class="code">apt install apache2 libapache2-mod-fcgid libapache2-mod-perl2</pre>
<p>
For Nginx:
</p>
<pre class="code">apt install nginx nginx-extras</pre>
</div>
<!-- EDIT13 SECTION "APT" [2676-3523] -->
<h3 class="sectionedit14" id="yum">YUM</h3>
<div class="level3">
<div class="notetip">You need <a href="http://fedoraproject.org/wiki/EPEL/" class="urlextern" title="http://fedoraproject.org/wiki/EPEL/" rel="nofollow">EPEL</a> repository. See below how to enable this repository: <a href="http://fedoraproject.org/wiki/EPEL/FAQ#howtouse" class="urlextern" title="http://fedoraproject.org/wiki/EPEL/FAQ#howtouse" rel="nofollow">http://fedoraproject.org/wiki/EPEL/FAQ#howtouse</a>
</div>
<p>
Perl dependencies:
</p>
<pre class="code">yum install perl-Apache-Session perl-Cache-Cache perl-Clone perl-Config-IniFiles perl-Convert-PEM perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-X509 perl-Crypt-Rijndael perl-Digest-HMAC perl-Digest-SHA perl-GD-SecurityImage perl-HTML-Template perl-IO-String perl-JSON perl-LDAP perl-Mouse perl-Plack perl-Regexp-Assemble perl-Regexp-Common perl-SOAP-Lite perl-String-Random perl-Unicode-String perl-version perl-XML-Simple</pre>
<p>
For Apache:
</p>
<pre class="code">yum install httpd mod_fcgid mod_perl</pre>
<p>
For Nginx:
</p>
<pre class="code">yum install nginx</pre>
<div class="noteimportant">As you need a recent version of Nginx, the best is to install <a href="https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#official-red-hat-centos-packages" class="urlextern" title="https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#official-red-hat-centos-packages" rel="nofollow">Nginx official packages</a>.
</div>
</div>
<!-- EDIT14 SECTION "YUM" [3524-] --></div>
</body>
</html>