Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:01:contents:08 [2014/01/24 18:54]
razvan.deaconescu [08. Configurare suport de LDAP în MediaWiki]
saisp:labs:01:contents:08 [2014/02/22 19:51] (current)
alexandru.carp
Line 1: Line 1:
 ==== 08. [BONUS - 10p] Configurare suport de LDAP în MediaWiki ==== ==== 08. [BONUS - 10p] Configurare suport de LDAP în MediaWiki ====
  
-  * (tutorial) Integrare LDAP în MediaWiki+MediaWiki ​este una dintre cele mai cunoscute și folosite soluții de wiki. Spre deosebire de DokuWiki folosește o bază de date. Pentru aceasta am instalat pe stația client un server MySQL.
  
 +Similar cu DokuWiki vom instala MediaWiki în directorul ''​public_html/​mediawiki/''​ din directorul home al utilizatorului ''​student''​. Pentru instalare vom folosi fișierul arhivă ''​mediawiki-1.22.2.tar.gz''​ din directorul home al utilizatorului ''​student''​. Vom urma indicațiile de instalare din [[http://​www.mediawiki.org/​wiki/​Manual:​Installing_MediaWiki|pagina de instalare a MediaWiki]].
 +
 +=== Configurare bază de date ===
 +
 +În primă fază vom configura baza de date. Pentru început ne vom conecta cu utilizatorul privilegiat al MySQL (parola este ''​student''​):<​code bash>
 +student@ldap-client:​~$ mysql -u root -pstudent
 +[...]
 +mysql> ​
 +</​code>​
 +Astfel conectați vom crea baza de date pentru MediaWiki (denumită ''​wikidb''​):<​code bash>
 +mysql> create database wikidb;
 +Query OK, 1 row affected (0.08 sec)
 +</​code>​
 +și apoi creăm utilizatorul care să fie folosit de MediaWiki pentru accesarea bazei de date (denumit ''​wikiuser'',​ folosibil de pe ''​localhost''​):<​code bash>
 +mysql> grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to '​wikiuser'​@'​localhost'​ identified by '​student';​
 +Query OK, 0 rows affected (0.00 sec)
 +</​code>​
 +Am configurat baza de date MySQL și acum putem ieși din modul de configurare:<​code bash>
 +mysql> exit
 +Bye
 +student@ldap-client:​~$ ​
 +</​code>​
 +
 +=== Instalare MediaWiki ===
 +
 +După cum am spus vom instala MediaWiki în directorul ''​public_html/​mediaiki/''​ din directorul home al utilizatorului ''​student''​. Pentru început vom dezarhiva, în acel director, arhiva ''​~student/​public_html/​mediawiki-1.22.2.tar.gz'',​ ca utilizatorul ''​student''​. Vom rula comenzile de mai jos:<​code bash>
 +student@ldap-client:​~$ ls
 +admin-public.git ​ mediawiki-1.22.2.tar.gz ​ public_html
 +student@ldap-client:​~$ cd public_html/​
 +student@ldap-client:​~/​public_html$ ls
 +dokuwiki
 +student@ldap-client:​~/​public_html$ tar xzf ../​mediawiki-1.22.2.tar.gz ​
 +student@ldap-client:​~/​public_html$ ls
 +dokuwiki ​ mediawiki-1.22.2
 +student@ldap-client:​~/​public_html$ mv mediawiki-1.22.2/​ mediawiki
 +student@ldap-client:​~/​public_html$ ls
 +dokuwiki ​ mediawiki
 +</​code>​
 +Mai sus am redenumit directorul obținut după dezarhivare din ''​mediawiki-1.22.2/''​ în ''​mediawiki/''​.
 +
 +În continuare vom rula scriptul de instalare al MediaWiki. Accesăm URL-ul aferent MediaWiki: http://​192.168.0.3/​~student/​mediawiki/​. De la acesta vom continua către pagina de configurare:​ http://​192.168.0.3/​~student/​mediawiki/​mw-config/​index.php. În acea pagină realizăm configurarea dorită, adică pașii:
 +  * Limba dorită: vom opta pentru valoarea implicită (engleză).
 +  * Verificările de mediu vor fi trecute: vom apăsa butonul "​Continue"​.
 +  * La configurările de bază de date, vom folosi pentru diversele câmpuri următoarele valori:
 +    * //Database host//: ''​localhost''​
 +    * //Database name//: ''​wikidb''​ (configurat anterior)
 +    * //Database table prefix//: nu completăm nimic (nu dorim să avem un prefix în numele tabelelor din baza de date)
 +    * //Database username//: ''​wikiuser''​ (configurat anterior)
 +    * //Database password//: ''​student''​ (configurat anterior)
 +  * În opțiunile de bază de date alegem ''​InnoDB''​ ca engine de stocare și ''​UTF-8''​ ca set de caractere.
 +  * În fereastra denumită "​Name"​ completați ce opțiuni doriți.
 +  * În celelalte ferestre alegeți, în continuare, ceea ce vi se pare potrivit.
 +  * După realizarea configurărilor de mai sus, se va rula scriptul intern de configurare.
 +  * Apoi se descarcă scriptul de configurare a wiki-ului. Acesta trebuie copiat în directorul de instalare al MediaWiki. Pentru aceasta, mergem în directorul unde a fost descărcat pe sistemul fizic și îl copiem în directorul de instalare folosind comanda ''​scp'':<​code bash>
 +student@mjolnir:​~/​Downloads$ scp LocalSettings.php student@192.168.0.3:​public_html/​mediawiki/​
 +student@192.168.0.3'​s password: ​
 +LocalSettings.php ​                            100% 4296     ​4.2KB/​s ​  00:00
 +</​code>​
 +  * Acum putem accesa wiki-ul folosind URL-ul http://​192.168.0.3/​~student/​mediawiki/​index.php/​Main_Page.
 +
 +=== Configuare autentificare prin LDAP ===
 +
 +Pentru început trebuie să adăugăm [[http://​www.mediawiki.org/​wiki/​Special:​ExtensionDistributor/​LdapAuthentication|extensia de LDAP aferentă MediaWiki]]. Este deja descărcată în fișierul ''​wikimedia-mediawiki...''​ din directorul home al utilizatorului ''​student''​ de pe stația client. O vom dezarhiva în subdirectorul ''​extensions/''​ din directorul de instalare al MediaWiki (în cazul nostru ''​~student/​public_html/​mediawiki/''​):<​code bash>
 +student@ldap-client:​~$ cd public_html/​mediawiki/​extensions/​
 +
 +student@ldap-client:​~/​public_html/​mediawiki/​extensions$ tar xzf ~/​wikimedia-mediawiki-extensions-LdapAuthentication-2.0c-31-g300d43f.tar.gz
 +
 +student@ldap-client:​~/​public_html/​mediawiki/​extensions$ ls
 +Cite                Poem
 +ConfirmEdit ​        ​README
 +Gadgets ​            ​Renameuser
 +ImageMap ​           SimpleAntiSpam
 +InputBox ​           SpamBlacklist
 +Interwiki ​          ​SyntaxHighlight_GeSHi
 +LocalisationUpdate ​ TitleBlacklist
 +Nuke                WikiEditor
 +ParserFunctions ​    ​wikimedia-mediawiki-extensions-LdapAuthentication-300d43f
 +PdfHandler
 +
 +student@ldap-client:​~/​public_html/​mediawiki/​extensions$ mv wikimedia-mediawiki-extensions-LdapAuthentication-300d43f/​ LdapAuthentication
 +
 +student@ldap-client:​~/​public_html/​mediawiki/​extensions$ ls
 +Cite         ​Interwiki ​          ​PdfHandler ​     SpamBlacklist
 +ConfirmEdit ​ LdapAuthentication ​ Poem            SyntaxHighlight_GeSHi
 +Gadgets ​     LocalisationUpdate ​ README ​         TitleBlacklist
 +ImageMap ​    ​Nuke ​               Renameuser ​     WikiEditor
 +InputBox ​    ​ParserFunctions ​    ​SimpleAntiSpam
 +</​code>​
 +Am redenumit mai sus directorul aferent extensiei de LDAP pentru MediaWiki în ''​LdapAuthentication/''​.
 +
 +Pentru configurarea autentificării prin LDAP pentru MediaWiki urmărim [[http://​www.mediawiki.org/​wiki/​Extension:​LDAP_Authentication/​Options|pagina aferentă pentru configurare]]. Configurările vor fi realizate din directorul de instalare al MediaWiki (adică ''​~student/​public_html/​mediawiki/''​).
 +
 +Adăugăm suport pentru autentificarea pe bază de LDAP în fișierul ''​LocalSettings.php'',​ folosind un editor. Le adăugăm la sfârșitul fișierului ca să avem rezultatul de mai jos:<​code bash>
 +student@ldap-client:​~/​public_html/​mediawiki$ tail -5 LocalSettings.php
 +
 +# End of automatically generated settings.
 +# Add more configuration options below.
 +require_once( "​$IP/​extensions/​LdapAuthentication/​LdapAuthentication.php"​ );
 +require_once( "​$IP/​includes/​AuthPlugin.php"​ );
 +$wgAuth = new LdapAuthenticationPlugin();​
 +</​code>​
 +
 +Adăugăm apoi, în continuare în același fișier (''​LocalSettings.php''​) directivele de configurare specifice pentru serverul de LDAP:<​code php>
 +$wgLDAPDomainNames = array(
 +  '​my-ldap-server',​
 +);
 +$wgLDAPServerNames = array(
 +  '​my-ldap-server'​ => '​ldap-server.local',​
 +);
 +$wgLDAPUseLocal = false;
 +$wgLDAPEncryptionType = array(
 +  '​my-ldap-server'​ => '​ssl',​
 +);
 +$wgLDAPPort = array(
 +  '​my-ldap-server'​ => 636,
 +);
 +$wgLDAPSearchAttributes = array(
 +  '​my-ldap-server'​ => '​uid'​
 +);
 +$wgLDAPBaseDNs = array(
 +  '​my-ldap-server'​ => '​dc=labs,​dc=cs,​dc=pub,​dc=ro',​
 +);
 +# To pull e-mail address from LDAP
 +$wgLDAPPreferences = array(
 +  '​my-ldap-server'​ => array( '​email'​ => '​mail'​)
 +);
 +// May use debug level 3 for extensive debugging.
 +// $wgLDAPDebug = 1;
 +// $wgDebugLogGroups['​ldap'​] = '/​tmp/​debug.log';​
 +</​code>​
 +
 +Am marcat opțiunea de debug comentată. La nevoie poate fi decomentată și valoarea sa crescută până la 3 pentru mesaje detaliate.
 +
 +O dată realizată configurația LDAP în fișierul de configurare (''​LocalSettings.php''​),​ va trebui să creăm tabelele aferente în baza de date. Pentru aceasta rulăm scriptul de actualizare:<​code bash>
 +student@ldap-client:​~/​public_html/​mediawiki$ php maintenance/​update.php
 +[...]
 +Creating ldap_domains table ...done.
 +...site_stats is populated...done.
 +...rev_len column of revision table already populated.
 +...Update '​populate rev_sha1'​ already logged as completed.
 +...img_sha1 column of image table already populated.
 +...protocol-relative URLs in externallinks table already fixed.
 +...fa_sha1 column of filearchive table already populated.
 +Purging caches...done.
 +
 +Done.
 +</​code>​
 +
 +După aceasta se accesează instanța de MediaWiki (http://​192.168.0.3/​~student/​mediawiki/​index.php/​Main_Page) și apoi se poate folosi link-ul "Log in" pentru autentificarea folosind LDAP. La opțiunea "Your domain:"​ se păstrează valoarea ''​my-ldap-server''​.
saisp/labs/01/contents/08.1390582449.txt.gz · Last modified: 2014/01/24 18:54 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0