This shows you the differences between two versions of the page.
|
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''. | ||