2016-10-15 19:57:04 +02:00
<!DOCTYPE html>
< html lang = "en" dir = "ltr" >
< head >
< meta charset = "utf-8" / >
< title > documentation:2.0:installsles< / title >
< meta name = "generator" content = "DokuWiki" / >
2018-12-20 10:46:14 +01:00
< meta name = "robots" content = "index,follow" / >
2016-10-15 19:57:04 +02:00
< meta name = "keywords" content = "documentation,2.0,installsles" / >
< link rel = "search" type = "application/opensearchdescription+xml" href = "lib/exe/opensearch.html" title = "LemonLDAP::NG" / >
< link rel = "start" href = "installsles.html" / >
< link rel = "contents" href = "installsles.html" title = "Sitemap" / >
< link rel = "stylesheet" type = "text/css" href = "lib/exe/css.php.t.bootstrap3.css" / >
2017-02-07 17:35:26 +01:00
<!-- //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 -->
2016-10-15 19:57:04 +02:00
< script type = "text/javascript" > / * < ! [ C D A T A [ * / v a r N S = ' d o c u m e n t a t i o n : 2 . 0 ' ; v a r J S I N F O = { " i d " : " d o c u m e n t a t i o n : 2 . 0 : i n s t a l l s l e s " , " n a m e s p a c e " : " d o c u m e n t a t i o n : 2 . 0 " } ;
/*!]]>*/< / script >
< script type = "text/javascript" charset = "utf-8" src = "lib/exe/js.php.t.bootstrap3.js" > < / script >
2017-02-07 17:35:26 +01:00
<!-- //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
2018-03-08 13:29:31 +01:00
< script type = "text/javascript" src = "/static/bwr/jquery-ui/jquery-ui.min.js" > < / script >
2017-02-07 17:35:26 +01:00
//else -->
2018-03-08 13:29:31 +01:00
< script type = "text/javascript" src = "/static/bwr/jquery-ui/jquery-ui.js" > < / script >
2017-02-07 17:35:26 +01:00
<!-- //endif -->
2016-10-15 19:57:04 +02:00
< / 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 = "#organization" > Organization< / a > < / div > < / li >
< li class = "level1" > < div class = "li" > < a href = "#get_the_packages" > Get the packages< / a > < / div >
< ul class = "toc" >
< li class = "level2" > < div class = "li" > < a href = "#repositories" > Repositories< / a > < / div > < / li >
< li class = "level2" > < div class = "li" > < a href = "#manual_download" > Manual download< / a > < / div > < / li >
< / ul >
< / li >
< li class = "level1" > < div class = "li" > < a href = "#package_gpg_signature" > Package GPG signature< / a > < / div > < / li >
< li class = "level1" > < div class = "li" > < a href = "#install_packages" > Install packages< / a > < / div >
< ul class = "toc" >
< li class = "level2" > < div class = "li" > < a href = "#with_zypper" > With ZYPPER< / a > < / div > < / li >
< li class = "level2" > < div class = "li" > < a href = "#with_rpm" > With RPM< / a > < / div > < / li >
< / ul >
< / li >
< li class = "level1" > < div class = "li" > < a href = "#first_configuration_steps" > First configuration steps< / a > < / div >
< ul class = "toc" >
< li class = "level2" > < div class = "li" > < a href = "#enable_apache_extensions" > Enable Apache extensions< / a > < / div > < / li >
< li class = "level2" > < div class = "li" > < a href = "#change_default_dns_domain" > Change default DNS domain< / a > < / div > < / li >
< li class = "level2" > < div class = "li" > < a href = "#dns" > DNS< / a > < / div > < / li >
< / ul >
< / li >
< li class = "level1" > < div class = "li" > < a href = "#file_location" > File location< / a > < / div > < / li >
< li class = "level1" > < div class = "li" > < a href = "#build_your_packages" > Build your packages< / a > < / div > < / li >
< / ul >
< / div >
< / div >
<!-- TOC END -->
< h1 class = "sectionedit1" id = "installation_on_suse_linux" > Installation on Suse Linux< / h1 >
< div class = "level1" >
< div class = "noteimportant" > < abbr title = "LemonLDAP::NG" > LL::NG< / abbr > requires at least SLES 12 SP1 or equivalent
< / div >
< / div >
<!-- EDIT1 SECTION "Installation on Suse Linux" [1 - 117] -->
< h2 class = "sectionedit2" id = "organization" > Organization< / h2 >
< div class = "level2" >
< p >
LemonLDAP::NG provides packages for SLES:
< / p >
< ul >
2017-02-07 17:35:26 +01:00
< li class = "level1" > < div class = "li" > lemonldap-ng: metapackage, contains no file but dependencies on other packages< / div >
2016-10-15 19:57:04 +02:00
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-doc: contains < abbr title = "HyperText Markup Language" > HTML< / abbr > documentation and project docs (README, etc.)< / div >
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-conf: contains default configuration (< abbr title = "Domain Name System" > DNS< / abbr > domain: example.com)< / div >
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-test: contains sample CGI test page< / div >
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-handler: contains Apache Handler implementation (agent)< / div >
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-manager: contains administration interface and session explorer< / div >
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-portal: contains authentication portal and menu< / div >
< / li >
< li class = "level1" > < div class = "li" > lemonldap-ng-fastcgi-server: FastCGI server needed to use Nginx< / div >
< / li >
< li class = "level1" > < div class = "li" > perl-Lemonldap-NG-Common: CPAN - Shared modules< / div >
< / li >
< li class = "level1" > < div class = "li" > perl-Lemonldap-NG-Handler: CPAN - Handler modules< / div >
< / li >
< li class = "level1" > < div class = "li" > perl-Lemonldap-NG-Manager: CPAN - Manager modules< / div >
< / li >
< li class = "level1" > < div class = "li" > perl-Lemonldap-NG-Portal: CPAN - Portal modules< / div >
< / li >
< / ul >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT2 SECTION "Organization" [118 - 983] -->
2016-10-15 19:57:04 +02:00
< h2 class = "sectionedit3" id = "get_the_packages" > Get the packages< / h2 >
< div class = "level2" >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT3 SECTION "Get the packages" [984 - 1013] -->
2016-10-15 19:57:04 +02:00
< h3 class = "sectionedit4" id = "repositories" > Repositories< / h3 >
< div class = "level3" >
< p >
This manual only refers to SLES 12 SP1. Installation may work on other platforms, with no guarantee.
< / p >
< p >
Different repositories are necessary for LemonLDAP::NG dependencies:
< / p >
< ul >
< li class = "level1" > < div class = "li" > Suse official repositories< / div >
< / li >
2017-02-07 17:35:26 +01:00
< li class = "level1" > < div class = "li" > 2 repositories on < a href = "https://build.opensuse.org/" class = "urlextern" title = "https://build.opensuse.org/" rel = "nofollow" > openSUSE Build Service< / a > < / div >
2016-10-15 19:57:04 +02:00
< / li >
< li class = "level1" > < div class = "li" > Additional packages available on repository.linagora.org or lemonldap-ng.org< / div >
< / li >
2019-02-12 17:32:02 +01:00
< li class = "level1" > < div class = "li" > Suse SDK repository is advised for building packages (yast2 -> Software -> Software Repositories -> Add --> Extensions and modules from Registration Server)< / div >
2016-10-15 19:57:04 +02:00
< / li >
< / ul >
< p >
First, make sure the exploitation system is up to date:
< / p >
< pre class = "code" > zypper update< / pre >
< p >
2017-02-07 17:35:26 +01:00
You can add the openSUSE Build Service repositories with the following commands:
2016-10-15 19:57:04 +02:00
< / p >
< pre class = "code" > zypper addrepo http://download.opensuse.org/distribution/leap/42.1/repo/oss/suse/ leap42
zypper addrepo http://download.opensuse.org/repositories/devel:languages:perl/SLE_12/devel:languages:perl.repo
zypper refresh< / pre >
< p >
Accept both signing keys each time.
< / p >
< p >
You can add the additional dependency repository *and* the LemonLDAP::NG repository with either commands:
< / p >
< pre class = "code" > zypper addrepo http://lemonldap-ng.org/sles12 lemonldap-sles12-repository
zypper refresh< / pre >
< p >
or
< / p >
< pre class = "code" > zypper addrepo http://repository.linagora.org/lemonldap-sles12-repository lemonldap-sles12-repository
zypper refresh< / pre >
< div class = "notetip" > Only packages on SLES 12 SP1 are tested for now.
< / div >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT4 SECTION "Repositories" [1014 - 2408] -->
2016-10-15 19:57:04 +02:00
< h3 class = "sectionedit5" id = "manual_download" > Manual download< / h3 >
< div class = "level3" >
< p >
RPMs are available on the < a href = "download.html" class = "wikilink1" title = "download" > Download page< / a > .
< / p >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT5 SECTION "Manual download" [2409 - 2491] -->
2016-10-15 19:57:04 +02:00
< h2 class = "sectionedit6" id = "package_gpg_signature" > Package GPG signature< / h2 >
< div class = "level2" >
< p >
The GPG key can be downloaded here: < a href = "rpm-gpg-key-ow2" class = "media mediafile mf_" title = "rpm-gpg-key-ow2 (1.7 KB)" > rpm-gpg-key-ow2< / a >
< / p >
< p >
Install it to trust RPMs:
< / p >
< pre class = "code" > rpm --import rpm-gpg-key-ow2< / pre >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT6 SECTION "Package GPG signature" [2492 - 2656] -->
2016-10-15 19:57:04 +02:00
< h2 class = "sectionedit7" id = "install_packages" > Install packages< / h2 >
< div class = "level2" >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT7 SECTION "Install packages" [2657 - 2686] -->
2016-10-15 19:57:04 +02:00
< h3 class = "sectionedit8" id = "with_zypper" > With ZYPPER< / h3 >
< div class = "level3" >
< p >
If the packages are stored in a repository:
< / p >
< pre class = "code shell" > zypper install lemonldap-ng< / pre >
< pre class = "code shell" > 59 new packages to install.
Total download size: 13.5 MiB. Already cached : 0 B. After operation, 30.7 MiB of supplementary disk space will be used.
Continue ? [y/n/? print all options] (y):< / pre >
< p >
You can also use zypper on local RPMs file:
< / p >
< pre class = "code" > zypper install lemonldap-ng-* perl-Lemonldap-NG-*< / pre >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT8 SECTION "With ZYPPER" [2687 - 3125] -->
2016-10-15 19:57:04 +02:00
< h3 class = "sectionedit9" id = "with_rpm" > With RPM< / h3 >
< div class = "level3" >
< p >
Before installing the packages, install all dependencies: (you need to get dependencies from previous repositories)
< / p >
< pre class = "code" > zypper install apache2 apache2-mod_perl apache2-mod_fcgid perl-ldap perl-XML-SAX perl-XML-NamespaceSupport perl-XML-Simple perl-XML-LibXML perl-Config-IniFiles perl-Digest-HMAC perl-Crypt-OpenSSL-RSA perl-Authen-SASL perl-Unicode-String gd perl-Regexp-Assemble perl-Authen-Captcha perl-Cache-Cache perl-Apache-Session perl-CGI-Session perl-IO-String perl-MIME-Lite perl-SOAP-Lite perl-XML-LibXSLT perl-String-Random perl-Email-Date-Format perl-Crypt-Rijndael perl-HTML-Template perl-JSON perl-Crypt-OpenSSL-X509 perl-Crypt-DES perl-Class-Inspector perl-Test-MockObject perl-Clone perl-Net-CIDR-Lite perl-ExtUtils-MakeMaker perl-CGI perl-CGI-Session perl-HTML-Template perl-SOAP-Lite perl-IPC-ShareLite perl-Error perl-HTML-Parser perl-libwww-perl perl-DBI perl-Cache-Memcached perl-Class-ErrorHandler perl-Convert-PEM perl-Crypt-DES_EDE3 perl-Digest-SHA perl-Env perl-Mouse perl-String-CRC32 perl-Plack perl-Regexp-Common perl-Crypt-OpenSSL-Bignum perl-FCGI-ProcManager< / pre >
< p >
You have then to install all the downloaded packages:
< / p >
< pre class = "code" > rpm -Uvh lemonldap-ng-* perl-Lemonldap-NG-*< / pre >
< div class = "notetip" > You can choose to install only one component by choosing the package < code > lemonldap-ng-portal< / code > , < code > lemonldap-ng-handler< / code > or < code > lemonldap-ng-manager< / code > .
< p >
Install the package < code > lemonldap-ng-conf< / code > on all server which contains one of those packages.
< / p >
< / div >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT9 SECTION "With RPM" [3126 - 4625] -->
2016-10-15 19:57:04 +02:00
< h2 class = "sectionedit10" id = "first_configuration_steps" > First configuration steps< / h2 >
< div class = "level2" >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT10 SECTION "First configuration steps" [4626 - 4664] -->
2016-10-15 19:57:04 +02:00
< h3 class = "sectionedit11" id = "enable_apache_extensions" > Enable Apache extensions< / h3 >
< div class = "level3" >
< p >
These extensions are activated by default on Apache at LemonLDAP install:
< / p >
< pre class = "code" > a2enmod perl
a2enmod headers
a2enmod mod_fcgid
a2enmod ssl
a2enmod rewrite
a2enmod proxy
a2enmod proxy_http< / pre >
< p >
If you decide to use SSL, you should also activate the appopriate flag:
< / p >
< pre class = "code" > sed -i ' s/^APACHE_SERVER_FLAGS=.*/APACHE_SERVER_FLAGS=" SSL" /' /etc/sysconfig/apache2< / pre >
< / div >
2018-06-25 23:17:51 +02:00
<!-- EDIT11 SECTION "Enable Apache extensions" [4665 - 5071] -->
2016-10-15 19:57:04 +02:00
< h3 class = "sectionedit12" id = "change_default_dns_domain" > Change default DNS domain< / h3 >
< div class = "level3" >
< p >
By default, < abbr title = "Domain Name System" > DNS< / abbr > domain is < code > example.com< / code > . You can change it quick with a sed command. For example, we change it to < code > ow2.org< / code > :
< / p >
2019-02-12 17:32:02 +01:00
< pre class = "code shell" > sed -i 's/example\.com/ow2.org/g' /etc/lemonldap-ng/{*.conf,*.ini,for_etc_hosts} /var/lib/lemonldap-ng/conf/lmConf-1< / pre >
2016-10-15 19:57:04 +02:00
< p >
Check Apache configuration and restart:
< / p >
< pre class = "code shell" > apachectl configtest
apachectl restart< / pre >
< / div >
2019-02-12 17:32:02 +01:00
<!-- EDIT12 SECTION "Change default DNS domain" [5072 - 5478] -->
2018-11-29 21:40:24 +01:00
< h3 class = "sectionedit13" id = "dns" > DNS< / h3 >
2016-10-15 19:57:04 +02:00
< div class = "level3" >
< p >
2018-11-29 21:40:24 +01:00
Configure your < abbr title = "Domain Name System" > DNS< / abbr > server to resolve names with your server < abbr title = "Internet Protocol" > IP< / abbr > :
2016-10-15 19:57:04 +02:00
< / p >
2018-11-29 21:40:24 +01:00
< ul >
< li class = "level1" > < div class = "li" > auth.< your domain> : main portal, must be public< / div >
< / li >
< li class = "level1" > < div class = "li" > manager.< your domain> : manager, only for adminsitrators< / div >
< / li >
< li class = "level1" > < div class = "li" > test1.< your domain> , test2.< your domain> : sample applications< / div >
< / li >
< / ul >
2016-10-15 19:57:04 +02:00
< p >
Follow the < a href = "start.html#configuration" class = "wikilink1" title = "documentation:2.0:start" > next steps< / a >
< / p >
< / div >
2019-02-12 17:32:02 +01:00
<!-- EDIT13 SECTION "DNS" [5479 - 5783] -->
2018-11-29 21:40:24 +01:00
< h2 class = "sectionedit14" id = "file_location" > File location< / h2 >
2016-10-15 19:57:04 +02:00
< div class = "level2" >
< ul >
< li class = "level1" > < div class = "li" > Configuration is in /etc/lemonldap-ng< / div >
< / li >
< li class = "level1" > < div class = "li" > LemonLDAP::NG configuration (edited by the Manager) is in /var/lib/lemonldap-ng/conf/< / div >
< / li >
< li class = "level1" > < div class = "li" > All Perl modules are in the VENDOR perl directory < / div >
< / li >
< li class = "level1" > < div class = "li" > All Perl scripts/pages are in /var/lib/lemonldap-ng/< / div >
< / li >
< li class = "level1" > < div class = "li" > All static content (examples, < abbr title = "Cascading Style Sheets" > CSS< / abbr > , images, etc.) is in /usr/share/lemonldap-ng/< / div >
< / li >
< / ul >
< / div >
2019-02-12 17:32:02 +01:00
<!-- EDIT14 SECTION "File location" [5784 - 6139] -->
2018-11-29 21:40:24 +01:00
< h2 class = "sectionedit15" id = "build_your_packages" > Build your packages< / h2 >
2016-10-15 19:57:04 +02:00
< div class = "level2" >
< p >
If you need it, you can rebuild RPMs:
< / p >
< ul >
< li class = "level1" > < div class = "li" > Install rpm-build package< / div >
< / li >
< li class = "level1" > < div class = "li" > Get the lemonldap source package from repository:< / div >
< / li >
< / ul >
< pre class = "code" > zypper source-install lemonldap-ng
cd /usr/src/packages/
ls SPECS/ SOURCES/< / pre >
< ul >
< li class = "level1" > < div class = "li" > Install all build dependencies (see BuildRequires in lemonldap-ng.< abbr title = "specification" > spec< / abbr > )< / div >
< / li >
< li class = "level1" > < div class = "li" > Build:< / div >
< / li >
< / ul >
< pre class = "code" > rpmbuild -ba SPECS/lemonldap-ng.spec< / pre >
< p >
Alternatively, you can use the automatic script “create-lemonldap-packages.sh”, available in rpm-sles directory in the < a href = "download.html#getting_sources_from_svn_repository" class = "wikilink1" title = "download" > lemonldap svn repository< / a > . The automatic script can also generate intermediate dependencies. See README file in the same directory for more information.
< / p >
< / div >
2019-02-12 17:32:02 +01:00
<!-- EDIT15 SECTION "Build your packages" [6140 - ] --> < / div >
2016-10-15 19:57:04 +02:00
< / body >
< / html >