Wikipédia:Saját wiki telepítése Debianban
Ezen az oldalon egy technikai leírást olvashatsz a Wikipédia szerkesztéséről. Tartsd szem előtt, hogy nem minden ajánlott, ami technikailag megvalósítható! |
Ez a szócikk saját wiki telepítését írja le debian disztribúcióban, és foglalkozik néhány üzemeltetési kérdéssel is. A leírtakhoz némi Linux-jártasságra van szükség.
E szócikk írásakor a 9.5-ös debian a stabil.
Telepítés
[szerkesztés]Parancssorban vagyunk, root felhasználóként jelentkeztünk be.
A wiki telepítése egyetlen utasítás.[1] A harmadik sor az adatbáziskezelő biztonsági beállításait végzi el.
apt-get install mediawiki imagemagick
apt-get clean # letöröl kb. 200M telepített, ezért szükségtelenné vált csomagfájlt
mysql_secure_installation # állítsunk be root jelszót, a többi kérdésre jó az üres sor
Ezután következik a webfelületű konfigurálás, ami azonban még nem működik. A telepítés során ui. nem jött létre olyan felhasználó, amelyik webes felületről be tud jelentkezni a mariaDB adatbázisba, hogy a wiki számára szükséges dolgokat megcsinálja. Rejtély, hogyan képzelték a debian-fejlesztők a webes adatbázis-alkalmazások futtatását; alighanem sehogy. Ez csúnya bug a 9-es debian-verzióban.[2]
Több megoldás lehetséges, talán a legjobb a régi mysql-autentikáció visszaállítása: bármely user bejelentkezhet a mysql root felhasználó nevében, feltéve, hogy tudja annak jelszavát.[3]
Még mindig parancssorban vagyunk, root felhasználóként. Bejelentkezünk az adatbázisba:
mysql -u root -p # megkérdezi az előbb beállított mysql-jelszót
A mysql>
promptot látjuk a sor elején. Két utasítást kell kiadni annak érdekében, hogy böngészőből, jelszóval is be tudjunk majd jelentkezni az adatbázisba;[4] a harmadik a kilépés az adatbázisból:[5]
use mysql;
update user set plugin="" where user='root';
exit
Ismét parancssorban vagyunk. Újra kell indítani a mysql adatbáziskezelőt. Egyetlen adatbázis-felhasználó módosítása miatt…
systemctl restart mysql
Konfigurálás böngészőből
[szerkesztés]A wiki program már működőképes, de az adatbázist még létre kell hozni, és néhány beállítás is hiányzik. A konfigurálás során a háttérben létrejönnek az adatbázis táblák, és kapunk egy böngészőből letölthető konfigurációs fájlt (LocalSettings.php), amit a fájlrendszerbe kell majd másolni. A konfigurálás nem módosítja a már feltelepített fájlokat; ehhez joga sincs.
A böngészőbe írandó webcím: http://localhost/mediawiki. Másik gépből is lehet konfigurálni, ilyenkor értelemszerűen localhost helyett a wiki-s gép IP-címét vagy nevét kell megadni.
A lapok kérdéseket tesznek fel. Csak azokat a válaszokat írjuk itt le, ahol változtatni kell.
Nyelv
[szerkesztés]Magyar nyelvet állítunk be, hacsak nincs valami különleges célunk a wikivel.
Üdvözöl a MediaWiki!
[szerkesztés]Nincs kérdés a lapon.
Kapcsolódás az adatbázishoz
[szerkesztés]- Adatbázis hosztneve: localhost (akkor is, ha másik gépről konfigurálunk)
- Adatbázisnév: … (ékezet nélküli nevet válasszunk)
- Felhasználónév: root
- Jelszó: amit a mysql_secure_installation utasításban megadtunk
Adatbázis-beállítások
[szerkesztés]A lap még mindig a mysql-ről kérdez:
- Tárolómotor: InnoDB
- Adatbázis karakterkészlete: Bináris
Név
[szerkesztés]Ez a lap már tényleg a wikit konfigurálja:
- A wiki neve: … (itt nyugodtan lehet ékezetet használni)
- Projektnévtér: a magyar Wikipédián ez Wikipédia. Ilyen névtér nem lesz a saját wikinkben, hacsak itt meg nem adjuk a Wikipédia nevet. A névtér a wiki-vel kapcsolatos, nem szócikk típusú információk névtere. Alaphelyzetben azonos a wiki előző pontban megadott nevével.
- Adminisztrátori fiók: a mindenható wiki-szerkesztő neve és jelszava. Ez tehát nem mysql, hanem wiki- (alkalmazás) user. Elvárás, hogy a jelszó legalább 8 karakter legyen, és különbözzék a felhasználó nevétől. Ennek saját wiki esetében nem sok értelme van, aki pedig szerverre telepít wiki-t, remélhetőleg tudja, mit csinál…
- Email-cím: saját wiki esetén nincs értelme. Nem akarunk saját magunkkal levelezni.
Beállítások
[szerkesztés]- Felhasználói jogosultságok profilja: ki láthatja ill. szerkesztheti a wikit. Saját wikinél a nyílt wikit érdemes megadni.
- Szerzői jog és licenc: saját wikiben nem kell.
- Kimenő e-mailek: saját wikiben ne engedélyezzük.
- Kiterjesztések: megadhatjuk az összeset is: könnyebb később megszüntetni egy kiterjesztést, mint újat felvenni. Saját wikiben a ConfirmEdit, Interwiki, Renameuser, SpamBlacklist és TitleBlacklist mindenképpen feleslegesnek tűnik.
- Képek és fájlok feltöltése: engedélyezzük. A Instant Commons engedélyezése minden képnél megnézi, van-e ilyen nevű a Commons-on; több kép esetén ez nagyon le tudja lassítani a lap betöltését még gyors internetkapcsolattal is, ha pedig épp nincs internetkapcsolat, hiányzó kép ikont látunk, ami úgy is marad: a lap változtatás nélküli szerkesztésével szüntethető meg.
- A logó URL-címe: ne strapáljuk magunkat: fütyül rá, mit állítunk be. Később majd módosítjuk.
- Objektum-gyorsítótárazás: nem kell.
Telepítés
[szerkesztés]Létrehozza az adatbázis-táblákat. Olyan 40 másodperc alatt végez.
LocalSettings.php
[szerkesztés]Az utolsó lépés. A böngésző nagyon el akarja menteni a címbeli file-t. Engedjünk neki, és a file-t root-ként másoljuk be a /var/lib/mediawiki könyvtárba. Ettől megnyugszik a lelke, nekünk pedig a file szerkesztésével módunk lesz az előbb kihagyott logót módosítani ($wgLogo változó). Ezután kattintsunk az enter your wiki linkre (rejtély, miért angolul írja: a lap többi része magyarul van). A frissen telepített wiki nyitólapját látjuk. Ha mégsem, ürítsük a böngésző cache-ét. A wiki a nyitólap kivételével üres.
A fájl helye /etc/mediawiki/LocalSettings.php (az előbbi út szimbolikus linkre mutatott). Úgy állítsuk a jogait, hogy csak a www-data tudja olvasni (hiszen a root adatbázis-felhasználó jelszava van benne):
chgrp www-data /etc/mediawiki/LocalSettings.php # www-data csoportjogon fogja olvasni a fájlt
chmod o-rw /etc/mediawiki/LocalSettings.php # a világ jogait elvesszük
ls -l `readlink /var/lib/mediawiki/LocalSettings.php`
Az eredmény:
-rw-r----- 1 root www-data 5425 Aug 3 00:17 /etc/mediawiki/LocalSettings.php
Adminisztráció
[szerkesztés]Verziók
[szerkesztés]E szócikk írásakor a 9.5-ös debian (stretch) a stabil. A wiki komponensei és verziói:
- mediawiki 1.27.4
- PHP 7.0.30
- mariadb 10.1.26
- apache webszerver 2.4.25
Statikus weblapok
[szerkesztés]A mediawiki telepítésével az apache is települ: a http://localhost URL-en az apache bejelentkező lapja látható Apache2 Debian Default Page címmel. Az apache DocumentRoot-ja a /etc/apache2/sites-available/000-default fájlban van megadva, értéke /var/www/html. Egyetlen fájl található benne, az index.html: ennek a tartalmát mutatja a böngésző. Ha a wiki mellett normál lapokat is szeretnénk, érdemes a document root-ot megváltoztatni, és egy másik fájlrendszerbe tenni (lásd LVM vagy ZFS).
Wiki admin
[szerkesztés]A wiki a http://localhost/mediawiki címen érhető el. A konfigurációs fájl helye /etc/apache2/conf-enabled/mediawiki.conf, aminek első sora
Alias /mediawiki /var/lib/mediawiki
Ez adja meg az URL-t és a wiki fájljainak gyökerét. A /var/lib/mediawiki könyvtárat itt is érdemes átmozgatni másik fájlrendszerbe, mert képek feltöltésével nagyra nőhet a helyfoglalása. A fájlok a root tulajdonában vannak, kivéve a cache és images könyvtárat; ezek az apache-t futtató www-data felhasználó számára írhatóak. Az utóbbi könyvtárba kerülnek majd a wiki-be feltöltött médiafájlok (pl. képek): ezeket az apache fogja odaírni a böngészőtől kapott utasításra. Ezért kell az írásjog.
A könyvtár másolásával és némi kézi apache-konfigurálással több saját wikit lehet üzemeltetni anélkül, hogy a wiki kódját lemásolnánk. Ezért van annyi szimbolikus link a /var/lib/mediawiki könyvtárban. Ilyenkor a LocalSettings.php szimbolikus linkjét meg kell szüntetni. A mediawiki csomag upgrade-jével az összes, a /var/lib/mediawiki másolásával létrehozott wiki frissülni fog.
Apache admin debianban
[szerkesztés]Az apache-nak egy konfigurációs fájlja van: debianban a /etc/apache2/apache2.conf, azonban az Include ill. IncludeOptional utasítással képes más fájlt is beilleszteni a konfigurációba. A debianban jól áttekinthetően három könyvtárra és néhány fájlra osztották szét a konfigurációt. Rajtunk áll, hogy hová írunk egy változtatást, hiszen a végeredmény egy konfig fájl, melyben az utasítások sorrendje nem számít (hacsak nem állítjuk be kétszer különböző értékre ugyanazt az apache-változót). A három könyvtár:
- /etc/apache2/conf-enabled: egy alkalmazáshoz tartozó apache-utasításokat tartalmazó fájlok. Pl. a wiki fájlneve mediawiki.conf.
- /etc/apache2/sites-enabled: az apache több egymástól független weblapot, ún. virtuális hoszt-ot képes szolgáltatni más-más porton és/vagy IP-címen vagy néven. A /etc/apache2/sites-enabled könyvtárban ezek felsorolása található.
- /etc/apache2/mods-enabled: az apache-modulok listája. A modulok apache-utasítások kódját tartalmazzák, nélkülük az apache az utasításokat sem érti.
A *-enabled könyvtárakban szimbolikus linkek vannak a *-available könyvtárakra, melyek az összes lehetséges konfigurációs fájlt, hosztot ill. modult tartalmazzák. A tiltás ill. engedélyezés e szimbolikus linkek törlését ill. létrehozását jelenti.
A konfigurációs fájlokban történő változtatás után az apache-t újra kell indítani (systemctl restart apache2
).
Jegyzetek
[szerkesztés]- ↑ A mediawiki csomaggal az összes (kb. 70) szükséges csomag települ, kb. fél GByte-ot foglal. Az imagemagick a bélyegképek létrehozásához kell: kb. 60 csomag, 90M-et foglal.
- ↑ Az ok egy biztonsági „egyszerűsítés” az adatbáziskezelőben, amit a mediawiki csomag nem követett: a linuxba bejelentkezett felhasználók jelszó nélkül léphetnek be az adatbázisba – de csak a saját linux-azonosítójukkal. Cserébe más néven egyáltalán nem tudnak az adatbázisba lépni. Az adatbázisban egyetlen felhasználó jött létre: a root, a webes felület viszont a www-data linux-felhasználó nevében fut.
- ↑ Egy másik lehetőség a www-data mysql-felhasználó létrehozása, és minden jog megadása, beleértve adatbázis létrehozását is. Mindezt jelszó nélkül. Ez jóval kevésbé tűnik biztonságosnak, pedig épp ez volt a biztonsági módosítás célja. Jobb kézzel létrehozni az adatbázist, így www-data-nak csak erre az adatbázisra kell teljes hozzáférési jogot adni. A telepítés után elég meghagyni a jogot a select-re és a három DML-utasításra: insert, update, delete.
- ↑ Az interneten több leírás javasolja az
ALTER USER root@localhost identified with 'mysql_native_password';
SQL-utasítást, beleértve a hivatalos mariadb dokumentációt, de az utasítás debianban szintaktikus hibát jelez. Rejtély, miért. - ↑ A kilépés előtt ki kellene adni a
flush privilege;
utasítást, de ez sem működik debianban. Úgy tűnik, a fejlesztők szándékosan akarták megakadályozni a régi autentikációs mód visszaállítását.
Források
[szerkesztés]- LocalSettings.php (mediawiki)
- Mediawiki on Debian (mediawiki)
- ERROR 1698 (28000): Access denied for user 'root'@'localhost' (stackoverflow)
- Apache HTTP Server Version 2.4 Documentation (apache)