This shows you the differences between two versions of the page.
saisp:labs:01:contents:08 [2014/02/03 09:41] razvan.deaconescu [08. [BONUS - 10p] Configurare suport de LDAP în MediaWiki] |
saisp:labs:01:contents:08 [2014/02/22 19:51] (current) alexandru.carp |
||
---|---|---|---|
Line 4: | Line 4: | ||
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]]. | 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 === | === 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'', ca utilizatorul ''student'':<code bash> | + | 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 | student@ldap-client:~$ ls | ||
admin-public.git mediawiki-1.22.2.tar.gz public_html | admin-public.git mediawiki-1.22.2.tar.gz public_html | ||
Line 22: | Line 43: | ||
Mai sus am redenumit directorul obținut după dezarhivare din ''mediawiki-1.22.2/'' în ''mediawiki/''. | Mai sus am redenumit directorul obținut după dezarhivare din ''mediawiki-1.22.2/'' în ''mediawiki/''. | ||
- | === Configurare bază de date === | + | Î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. | ||
- | În primă fază vom configura baza de date. Pentru început ne vom conecta cu utilizatorul privilegiat al MySQL (parola este ''student''):<code bash> | + | === Configuare autentificare prin LDAP === |
- | student@ldap-client:~$ mysql -u root -pstudent | + | |
- | [...] | + | 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> |
- | mysql> | + | 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> | </code> | ||
- | Astfel conectați vom crea baza de date pentru MediaWiki (denumită ''wikidb''):<code bash> | + | Am redenumit mai sus directorul aferent extensiei de LDAP pentru MediaWiki în ''LdapAuthentication/''. |
- | mysql> create database wikidb; | + | |
- | Query OK, 1 row affected (0.08 sec) | + | 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> | </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'; | + | Adăugăm apoi, în continuare în același fișier (''LocalSettings.php'') directivele de configurare specifice pentru serverul de LDAP:<code php> |
- | Query OK, 0 rows affected (0.00 sec) | + | $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> | </code> | ||
- | Am configurat baza de date MySQL și acum putem ieși din modul de configurare:<code bash> | + | |
- | mysql> exit | + | Am marcat opțiunea de debug comentată. La nevoie poate fi decomentată și valoarea sa crescută până la 3 pentru mesaje detaliate. |
- | Bye | + | |
- | student@ldap-client:~$ | + | 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> | </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''. |