====== DokuWiki Farmy ====== https://www.dokuwiki.org/farms Wiki farma je kolekce wiki běžících na stejném webovém serveru a sdílejících jeden hlavní wiki engine. Tím, že provozujete pouze jednu hlavní wiki, můžete spravovat stovky nezávislých wiki (tzv. „zvířat“). Všechna zvířata sdílejí jednu sadu pluginů a šablon, ale každé z nich může mít jinou aktivní sadu pluginů, jinou šablonu a jiné nastavení. Koncept farem se v jiných CMS označuje také jako „multi-site“, „multi-domain“ nebo „sub-sites“. ===== Nastavení pomocí pluginu Farmer ===== Existuje více způsobů, jak wiki farmu provozovat. Pravděpodobně nejjednodušší je použití [[doku>plugin:farmer|Pluginu Farmer]], který farmu nastaví za vás a poskytne nástroje pro vytváření a správu zvířat. ===== Ruční nastavení ===== Tato stránka popisuje, jak //ručně// nastavit farmu tím nejjednodušším a nejpřímějším způsobem pro provoz wiki farmy s DokuWiki. [[doku>farms:advanced|Pokročilá nastavení]] a tipy jsou popsány na samostatné stránce. ===== Pojmy ===== * Když mluvíme o **farmě**, máme na mysli celé nastavení obsahující vše níže uvedené. Obvykle je na serveru jen jedna farma. * **Farmář** (hlavní wiki) je samotná instalace DokuWiki. Zde se nachází veškerý kód, zde instalujete pluginy a šablony a zde provádíte aktualizace. Na jednu farmu připadá pouze jeden farmář. * Nastavení **adresáře farmy** je to, co potřebujete k zahájení farmaření. Je to fyzický nadřazený adresář všech zvířat na vašem serveru. Pouze jedno místo na serveru farmy. * **Zvířata** (podřízené wiki) jsou jednotlivé wiki instance. Můžete jich mít libovolné množství, ale každá bude obsahovat pouze wiki data a specifické konfigurace - žádné duplikace kódu. ===== Struktura adresářů ===== Následující příklad je nejběžnější struktura adresářů a používá se v celém tomto dokumentu. Můžete však mít i jinou strukturu. * ''/var/www/dokuwiki'' -- engine DokuWiki, musí být dostupný z webu * ''/var/www/farm'' -- adresář farmy DokuWiki, který obsahuje všechna zvířata Ve vašem adresáři farmy můžete mít libovolný počet zvířat, např.: * ''/var/www/farm/animal'' -- jedna wiki * ''/var/www/farm/example.com'' -- další wiki ===== Dva různé typy nastavení ===== Existují dva typy nastavení: založené na virtuálním hostiteli a založené na .htaccess. Metoda [[wp>Virtual_hosting|virtuálních hostitelů]] (nebo „virtuálního webového serveru“) závisí na vaší schopnosti přiřadit více názvů jednomu serveru. Vyžaduje konfiguraci vašeho webového serveru **a** možnost přidávat názvy do vašeho [[wp>Domain_Name_System|DNS]] serveru. Například s tímto nastavením může název „%%wiki.mydomain.net%%“ poskytovat přístup k farmářské wiki, zatímco „%%programming.mydomain.net%%“ poskytne přístup k wiki s programovacími tutoriály. Oba názvy se připojují ke stejnému fyzickému stroji. Metoda **.htaccess** (neboli „serverový skript“) vyžaduje pouze funkce webového serveru, které umožní, aby různé cesty odkazovaly na různé wiki. Malý skript řekne serveru, jak má s každým wiki adresářem zacházet. V tomto případě může být „%%www.mydomain.net/dokuwiki/%%“ úvodní stránkou farmářské wiki a „%%www.mydomain.net/programming%%“ přístupem k wiki s programovacími tutoriály. Obě metody vyžadují určitou konfiguraci serveru. ==== Nastavení založené na virtuálním hostiteli ==== * Co konfigurovat: virtuální hostitele přes konfiguraci webového serveru (např. Apache httpd.conf) nebo přes ovládací panel hostingu. * Výsledné adresy URL: libovolné, např. „%%example.com%%“, „%%subdomain.example.net%%“ nebo „%%test.example.org:8080/foo/bar/%%“. * Výhody: Umožňuje mnohem flexibilnější URL nezávislé na struktuře souborů. * Nevýhody: Možnost nastavení virtuálních hostingů není vždy dostupná. Někteří (zejména levní) poskytovatelé hostingu to neumožňují. Pro každé zvíře musíte publikovat nový odpovídající název pro hostitele webového serveru. Standardní způsob publikování názvů je přes DNS. Existují i jiné způsoby, zejména pro soukromé použití (zeptejte se svého správce systému, pokud nějakého máte), ale standardní způsob je DNS. Takže musíte mít možnost publikovat názvy v DNS. Kontaktujte svého správce systému nebo poskytovatele služeb pro konkrétní pokyny. ==== Nastavení založené na .htaccess ==== * Co konfigurovat: [[wp>.htaccess]]. Apache musí povolit konfiguraci přes htaccess. * Výsledné URL: pouze „podadresáře“ jedné domény a farmy, např. ''example.com/farm/cat'' nebo ''example.com/farm/dog'', ale s [[doku>farms:advanced#Flexible .htaccess-based setups|komplexnějším nastavením]] lze dosáhnout téměř stejné flexibility jako u druhého typu nastavení * Výhody: Pokud poskytovatel hostingu nepodporuje virtuální hosting, je to jediná možná varianta. * Nevýhody: Soubory .htaccess nejsou vždy podporovány některými poskytovateli hostingu. Ale tato varianta je obvykle podporována častěji než virtuální hostingy. ===== Jak vytvořit farmu ===== ==== 0. Předpoklady ==== V následujících krocích předpokládáme, že jste již [[install|nainstalovali standardní DokuWiki]]. Ujistěte se, že je správně nainstalována, aby fungovala jako běžná wiki, nebo odstraňte ''install.php'' kvůli bezpečnosti. ==== 1. Vytvořte adresář farmy ==== Vytvořte prázdný adresář s názvem ''/var/www/farm''. To bude váš adresář farmy a musí být zapisovatelný webovým serverem. Měl by být chráněn stejně jako běžná instalace DokuWiki. ==== 2. Aktivujte farmu ==== V adresáři farmáře zkopírujte ''./inc/preload.php.dist'' do ''./inc/preload.php'', otevřete ho a odkomentujte dva relevantní řádky a nastavte cestu k farmě, aby to vypadalo takto: // set this to your farm directory if (!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/var/www/farm'); // include this after DOKU_FARMDIR if you want to use farms include(fullpath(dirname(__FILE__)) . '/farm.php'); Poznámka: Cesta, kterou zadáte pro ''DOKU_FARMDIR'', může být založena na „skutečné“ cestě k adresáři serveru (jak ji odhalí PHP proměnná ''$_SERVER['DOCUMENT_ROOT']''). Někdy nefunguje použití symbolického odkazu. Například i když běžně přistupujete k adresáři farmy jako "/public_html/farm", možná budete muset zadat něco jako "/home//public_html/farm". ==== 3. Přidejte zvíře ==== Rozbalte {{doku>dokuwiki_farm_animal.zip|tuto šablonu zvířete}} do adresáře farmy. Jedná se o adresář (nazvaný ''_animal''), který obsahuje (prakticky) prázdný adresář ''data'' a předvyplněný adresář ''conf''. Poté musíte tento rozbalený adresář přejmenovat. Pravidla pro pojmenování adresáře, ve kterém zvíře ukládá své soubory, závisí na typu nastavení: * Nastavení s virtuálním hostem vyžaduje názvy adresářů zvířat, které odpovídají jejich URL. Např. ''subdomain.example.com'' funguje s adresářem pojmenovaným ''subdomain.example.com''. ((Ale fungovat bude i s názvy jako ''example'' nebo ''example.com'')) * Nastavení přes .htaccess vyžaduje, aby názvy adresářů zvířat přesně odpovídaly názvům v URL. Např. ''example.com/farm/cat'' bude potřebovat adresář zvířete pojmenovaný ''cat''. Pokud používáte samostatný .htaccess soubor pro každé zvíře, můžete název zvířete specifikovat tam. Pokud používáte nastavení přes .htaccess, je třeba odkomentovat a upravit hodnotu ''$conf['basedir']'' v souboru ''conf/local.protected.php'' tak, aby odpovídala cestě v URL, pod kterou je zvíře dostupné (např. '/animal/' pokud je dostupné na http://example.com/animal - ale může být fyzicky uloženo v /var/www/farm/animal). ==== 4. Přidejte potřebná nastavení serveru ==== Pokud nejste zvyklí na konfiguraci serveru, toto je ta složitější část. FIXME Tato část a následující potřebují dopracovat. Alternativy jsou zpracovány v pořadí v souboru inc/farm.php. Pokud je rozpoznáno nastavení přes .htaccess, nastavení přes virtuální server je ignorováno. === a. Nastavení přes .htaccess === Tento soubor ''.htaccess'' musí být umístěn do adresáře farmy. Nezapomeňte povolit .htaccess v konfiguraci Apache (AllowOverride All) RewriteEngine On RewriteRule ^/?([^/]+)/(.*) /dokuwiki/$2?animal=$1 [QSA] RewriteRule ^/?([^/]+)$ /dokuwiki/?animal=$1 [QSA] Options +FollowSymLinks Změňte část ''/dokuwiki/'' na cestu k adresáři farmáře. === b. Nastavení přes virtuálního hostitele === Pro toto nastavení musíte nakonfigurovat [[wp>Virtual_hosting|virtuálního hostitele]] pro každé nové zvíře ve vašem ovládacím panelu hostingu nebo v souboru ''httpd.conf''. Zde je příklad pro ''subdomain.example.com'': NameVirtualHost * ServerName subdomain.example.com # this is the URL of your wiki animal DocumentRoot /var/www/dokuwiki/ # the document root always needs to be the DokuWiki *farmer* directory Ve většině sdílených hostingových prostředí stačí přidat **server name** (požadovanou doménu se subdoménou nebo bez ní) a **document root** (vždy směřující na adresář farmáře) přes jejich GUI ((Grafického rozhraní)). V některých případech lze použít i **generický přístup** (generic approach). V tomto případě není nutné upravovat konfiguraci Apache při přidávání zvířete. Generická konfigurace Apache: ServerName example.com ServerAlias *.example.com VirtualDocumentRoot /var/www/%-2/%-3 RewriteEngine On Každá subdoména je automaticky mapována na /var/www/example.com/. Toto uspořádání má smysl, pokud několik domén směřuje na stejný server. V každém z těchto adresářů subdomén musí být vytvořen symbolický odkaz na adresář s kódem DokuWiki. Každé jednotlivé zvíře se nachází v ''DOKU_FARMDIR/.example.com'' (odpovídá původnímu URL).\\ Tuto cestu je třeba vytvořit a do ní zkopírovat šablonu zvířete (viz výše). ==== 5. Změna hesla administrátora ==== Hotovo! Nyní můžete jednoduše přejít na URL vašeho zvířete (buď ''subdomain.example.com'' nebo ''example.com/farm/animal/'', v závislosti na vašem nastavení). :!: Šablona zvířete obsahuje výchozí účet uživatele "admin" s heslem "admin". Prosím, **změňte heslo administrátora** co nejdříve. Přihlaste se pomocí admin/admin, přejděte na "Admin" > "Správce uživatelů", klikněte na uživatele admin a změňte jeho heslo níže. Doporučuje se také změnit **e-mailovou adresu** administrátora. ===== Jak přidat další zvířata ===== Po počátečním nastavení stačí pro každé nové zvíře zopakovat kroky [[#Přidejte zvíře]], [[#Přidejte potřebná nastavení serveru]] (pouze v případě nastavení přes virtuální hosty) a [[#Změna hesla administrátora]]. ===== Diskuze ===== Pro dotazy ohledně nastavení farmy využijte [[https://forum.dokuwiki.org|Fórum]]. Nezapomeňte uvést, zda jste použili ruční nastavení nebo plugin Farmer. ===== Příklady ===== Jeden příklad nastavení farmy je podrobně popsán [[doku>farms:example01|zde]].