Ahogy ígértem, megosztom a közösséggel a WordPress MultiSite telepítése során megélt kalandjaimat. Tanulságos lesz, még ha nem is olyan szórakoztató, mint a Gyűrűk Ura – ámbár lesznek hasonlóan vérfagyasztó pillanatok, és a boldog vég sem marad el 🙂

A történet a “tehenes” WordPress rendszerrel indult. Volt ugyanis a “sima”, a mindenki által ismert és megszokott változat: egy WP-oldal, egy telepítés, egy végeredmény. Ha többre van szükséged, létesítesz a tárhelyeden egy másik alkönyvtárat vagy egy aldomaint, és oda telepítesz egy újabb példányt a WordPress motorból. Az adatbázisa lehet külön is, de ha más előtagot adsz a tábláknak, akkor akár ugyanabban az adatbázisban lehet több WordPress (a wp-config.php fájlban is le van ez írva). Ez így jó, de az egyes WP-weblapokat külön Vezérlőpultról kell kezelned, ami sok példány esetében már kényelmetlen.

Ezért találták ki a WordPress MU-t (amit én tiszteletlenül “tehenes”-ként emlegetek), erről írtam közel két hónapja: https://www.wp-suli.hu/haladoknak/tehenes-wordpress-mu/. Ha ezt a változatot telepíted, akkor egy Vezérlőpultról kezelhetsz akárhány WordPress weblapot, mindegyiknek lesz egy aldomainje vagy egy alkönyvtára, de egy helyről látod az összeset.

Amikor tavaly nyáron megjelent a WordPress 3.0 verziója, akkor jelentették be, hogy a WP MU fejlesztése befejeződik, legalábbis külön szálon nem frissítik tovább, hanem a két szál (a “sima” és a többfelhasználós változat) ezentúl egyben lesz elérhető. Ehhez képest továbbra is van frissítés a MU-hoz (gondolom, a régi felhasználók kedvéért), én is telepítettem és kipróbáltam, de valahogy nem volt az igazi, hibásnak és nehézkesnek láttam az egész rendszert.

hirdetés
Online WordPress Tanfolyam - Hamarosan nyitunk!

Ekkor figyeltem fel rá, hogy a 3.0 verzió óta a “sima” WP-ből is lehet többfelhasználóst csinálni (persze, hallottam már, csak elengedtem a fülem mellett, hiszen nem volt rá szükségem), és ezt a változatot már nem “multiuser”-nek (azaz többfelhasználósnak), hanem “multisite“-nak (azaz többoldalasnak) hívják. (A félreértések elkerülése végett: a site szó weblapot, weboldalt, honlapot jelent, a magyar megnevezés nem igazán konzekvens, tehát nem egy oldalát a honlapnak, hanem a teljes honlapot, minden aloldalával együtt – én általában a weblap kifejezést használom a site megfelelőjeként, de ez ízlés dolga, sokan inkább a honlap szót szeretik.) A továbbiakban a WordPress MultiSite-ot WPMS-nek rövidítem.

A 3.0 WordPress tehát alapból tudja azt, hogy egyetlen Vezérlőpultról akár többszáz vagy többezer weblapot is lehet kezelni – némi alakítgatások után. Lássuk a részleteket!

 

1. Milyen legyen a multisite weblap szerkezete?

Nagyon fontos, hogy ezt előre el kell döntenünk. Kétféleképpen hozhatunk létre multisite weblapot: az egyes weblapok lehetnek alkönyvtárban vagy aldomainen. Ezt előre el kell dönteni, és később már nem lehet megváltoztatni. Tehát az egyes weblapok címe ez lesz:

– alkönyvtáras változat: http://domainneved.hu/site1, http://domainneved.hu/site2, stb;

– aldomaines változat: http://site1.domainneved.hu, http://site2.domainneved.hu, stb.

 

2. Mire kell vigyázni aldomaines szerkezet esetén?

Még mielőtt telepítesz bármit, figyelj a következőkre. Nem tudom pontosan, hogy ez miért van így, a technikai részéhez ezen a szinten már nem értek, de nem is fontos. Manapság a weblapok már általában gond nélkül elérhetőek www nélkül és www-vel is, akármelyiket írod a böngésződ címsorába, meg fog jelenni a weblap. Kivéve, ha aldomaines szerkezetet használsz.

Aldomainek esetében a weblap címében nincs www!

Ez azért nagyon fontos, mert ha nem figyelsz a telepítéskor, lehetetlenné teszed a WPMS aldomaines használatát. Telepítéskor ugyanis, miután felmásoltál mindent a tárhelyedre, beállítottad az adatbázist és a wp-config.php fájlt, ezt is felmásoltad a tárhelyedre, akkor következik a telepítés utolsó lépése: a WordPress összekapcsolása az adatbázissal. Ezt ugye úgy kell megtenni, hogy a böngésződ címsorába beírod a domained nevét (hivatalosan úgy kell, hogy a http://domainneved.hu/wp-admin/install.php sort írod be, de valójában úgy is ide kerülsz, ha egyszerűen csak a domainneved.hu sort írod be.

Telepítés után a Vezérlőpult -> Beállítások menüpontban látod a WordPress cím (URL) sort, amelynek értéke az a webcím, ahová a WordPressed telepítve van. Ha a fenti, utolsó telepítési lépésben a www.domainneved.hu beírásával indítottad a WP és az adatbázis összekapcsolását, akkor itt is az lesz; ha a domainneved.hu beírásával indítottad, akkor itt is az lesz. És ha használtad a www-t, akkor nem fogsz tudni aldomaines szerkezetet használni a multisite telepítésénél!

Ettől egyébként aldomaint még létre tudsz hozni, nálam is https://www.wp-suli.hu az oldal címe, és van http://tanfolyam.wp-suli.hu meg http://tagok.wp-suli.hu, de azok mind külön telepítések, és külön Vezérlőpultról kezelem őket.

Megjegyzés: könnyen lehetséges, hogy ez nem minden tárhelyre és nem minden domainnévre igaz. Kérlek, ezt az információt ne vedd százszázalékosnak, lehet, hogy Nálad ez nem jelent problémát. De tudj róla, hogy ha nem működik a multisite, akkor lehet, hogy ez a baj, és ezt utólag nem lehet megváltoztatni. Mindenesetre egy biztos: www nélkül tutira működni fog, www-vel nem garantálom. Ugyanakkor hátránya nincs, ha nem használod a www-t.

Ez volt tehát az első fontos tapasztalatom: www nélkül kellett telepítenem az alap WordPress motort – az eredményt láthatod a http://pagony.net/ oldalon – és ha azt írod be a böngésződ címsorába, hogy www.pagony.net, akkor is ugyanide kerülsz.

 

3. Mire kell vigyázni alkönyvtáras szerkezet esetén?

A meglévő WordPress oldaladból is kialakíthatsz multisite-os rendszert, de ha az alkönyvtáras megoldás tűnik Neked szimpatikusabbnak, vigyázz a közvetlen linkekkel. Hiszen ha a weblapod már több hónapja megvan, akkor biztosan van rajta egy csomó oldal és kategória és bejegyzés, és ezeknek olyan címük van, mint például domainneved.hu/cegismerteto és hasonlók. Tehát ha alkönyvtáras WPMS-t szeretnél, akkor nem hozhatsz létre bármilyen al-weblapot, hiszen például cegismerteto nevűt nem hozhatsz létre, mert ilyen linked már létezik egy statikus oldalra. (Remélem, ez érthető, ennél világosabban sehogy sem tudom megfogalmazni…)

 

4. Hogyan lesz a sima WP-ből WPMS?

Az előző bejegyzésemben ezt a részt már leírtam, de most leírom újra, hogy egyben meglegyen az egész. Az első lépés az, hogy át kell írnod a wp-config.php fájlodat. Az /* Ennyi volt, kellemes blogolást! */ sor elé be kell szúrnod egy plusz sort:

define('WP_ALLOW_MULTISITE', true);

Mentsd el a fájlt és másold fel a tárhelyedre az eredetit felülírva. Lépj be a Vezérlőpultba, és ott az Eszközök menüpont alatt találsz egy új almenüpontot: Hálózat beállítása. Kattints rá, és kövesd az utasításokat. Elég egyszerűen és érthetően le van írva: megadja azokat a sorokat, amelyeket be kell még illesztened a wp-config.php fájlba illetve a .htaccess fájlba; ezeket tedd meg, mentsd el, töltsd fel a tárhelyedre.

Itt kell választanod az aldomaines és az alkönyvtáras megoldás között is; a rendszer szépen el is magyarázza, hogy melyik hogy fog kinézni és melyiknek mik a technikai feltételei. Alkönyvtáras szerkezet esetén figyelmeztet arra, amire én fentebb, aldomainesnél pedig megvizsgálja, hogy a tárhelyed technikailag alkalmas-e a rendszer létrehozására.

 

5. Az aldomaines rendszer technikai feltételei

Most érkeztünk el ahhoz a ponthoz, amely nekem nagyon sok fejfájást okozott. Életem első WPMS telepítése során ugyanis hibaüzenetet kaptam ezen a ponton: a WordPress közölte velem, hogy a tárhelyen nem áll rendelkezésre a wildcard (*) aldomain, és lépjek kapcsolatba a tárhelyszolgáltatómmal.

Wildcard DNS hiányzik

 

Mit is jelent ez? Az előbb már írtam az aldomainekről. Ez a szerkezet ugye úgy néz ki, hogy valami.domainneved.hu. Alapesetben ha létrehozol egy aldomaint a tárhelyeden, akkor a tárhelykezelő rendszer létesít egy subdomains alkönyvtárat, és azon belül egy valami nevű alkönyvtárat. Fizikailag tehát a valami.domainneved.hu domain a tárhelyeden a domainneved.hu/subdomains/valami alkönyvtárra fog mutatni. De ez nekünk nem jó! Hiszen akkor ebbe az alkönyvtárba kellene telepítenünk egy másik WordPresst, és mi most nem ezt akarjuk!

Én, mint tárhelyszolgáltató viszonteladó, hozzáférek a tárhelyem DNS-éhez (Domain Name System), azaz be tudok magamnak állítani aldomaineket és új DNS bejegyzéseket is. Tehát amikor a WordPress kiírta, hogy hozzak létre egy új DNS bejegyzést a wildcard aldomain számára, meg is tudtam ezt csinálni.

A wildcardot magyarul jokernek lehet mondani, lényegében ez ugyanaz, mint amikor keresel egy fájlt a számítógépen, és mondjuk csak azt tudod róla, hogy a neve úgy kezdődik, hogy mark, de utána még van valami, és a kiterjesztésére sem emlékszel. Ekkor beírod, hogy a mark*.* nevű fájlt keresed, és a találatok között lesz a marketing.txt, a market.doc meg a markus.jpg is és így tovább. A * tehát mindent helyettesít.

A wildcard aldomain DNS-bejegyzése tehát így néz ki: *.domainneved.hu. – és ha van rá jogosultságod, akkor beállíthatod hozzá a szervered IP-címét. Ha ezt megteszed, a WordPress megnyugszik, a hibaüzenet eltűnik, és úgy látszik, minden a legnagyobb rendben van.

Csakhogy ez nem igaz! Amikor létrehozol egy új weblapot a multisite rendszeredben, bár látszólag minden rendben lefut, és megkapod az értesítő e-maileket is az új WordPress weblap létrejöttéről, amikor megpróbálod megnézni vagy belépni a Vezérlőpultjára, HTTP 403 Tiltott hibaüzenetet kapsz: “A webhely elutasította a lap megjelenítését. A legvalószínűbb okok: A webhely megtekintéséhez be kell jelentkezni.

Nem részletezem, mennyit kutattam a megoldás után, pedig ott volt az orrom előtt. Természetesen benne volt a megoldás a WordPress dokumentációjában, csak éppen angol nyelven, és elég bonyolultan megfogalmazva. De amikor megértettem, már a hajamat téptem, hogy ez miért nem jutott eszembe… (Megjegyzés: a WordPress Support Forumon csak annyit találtam, hogy a mod_rewrite funkciónak engedélyezve kell lennie a szerveren, de ez nálam megvolt.)

A dokumentációból ez derült ki: amikor létrehoztam a wildcard bejegyzést, gyakorlatilag egy * nevű alkönyvtár keletkezett a subdomains alatt, és ez ugye nem jó. Azt kellett beállítani, hogy a *.domainnevem.hu ne a domainnevem.hu/subdomains/* alkönyvtárra mutasson, hanem a domainnevem.hu főkönyvtárra, fizikailag a szerverneve/domainnevem.hu/httpdocs könyvtárra! És ezt már csak az tudja beállítani, aki a tárhely szervereihez fizikailag is hozzáfér.

Ezt írtam a tárhelyszolgáltatómnak (ezt hámoztam ki a WordPress dokumentációjából):

1. A /var/www/vhosts/domain.com/conf/ könyvtárban létre kell hozni vagy szerkeszteni kell a vhosts.conf fájlt. A fájl elejére ezeket a sorokat kell hozzáadni:
 
ServerAlias *.domainneved.hu
<Directory /srv/szerverneve/domainneved.hu/>
AllowOverride FileInfo Options
php_admin_flag safe_mode off
</Directory>

 
Ezután el kell menteni a fájlt és újraindítani az Apache-ot.
 
2. A DNS beállításokban nemcsak simán létre kell hozni a *.domainneved.hu. bejegyzést, hanem egy CNAME sort kell létrehozni *.domainneved.hu CNAME domainneved.hu paraméterekkel.

Ezeket én már nem tudtam megcsinálni, mert a tárhelyemhez ilyen szinten nem volt hozzáférésem – de a szolgáltató megcsinálta, és most már működik a multisite oldalam! Ez alkalomból szeretném ismét felhívni a figyelmet rá, hogy Antal Béla a Silihostnál milyen rugalmasan és gyorsan a segítségemre sietett – nagy köszönet neki ezért! Nem véletlenül ajánlom mindenkinek a Silihost szolgáltatásait!

 

Ez a bejegyzésem meglehetősen technikaira sikeredett, de muszáj volt. Sajnos enélkül nem tudtam volna megoldani a feladatot, azt, amiről a múltkor írtam: hogy 93 WordPress weboldalt hozzak létre 20 perc alatt… (És most jöhetnek a hozzászólások, hogy milyen ügyetlen vagyok, hogy mindezeket nem tudtam előre! 🙂 )