• Středa, Říjen 22nd, 2008

Sepsal jsem pseudo-univerzální návod, jak přetáhnout kompletní instalaci WordPressu včetně nastavení a pluginů z localhostu na konkrétní hosting.

Podotýkám, že je nutno brát celý postup s rezervou, protože vždy bude třeba řešit konkrétní problémy s konkrtétním hostingem. Můj příklad ilustruje přesun WordPressu z lokálního umístění http://localhost/ na http://jinadomena.cz/.

Celý WordPress byl tedy nainstalován lokálně, včetně pluginů

Nyní k samotnému postupu:

  1. založíme databázi na vzdáleném serveru a upravíme příslušné přístupové údaje v souboru wp-config.php
  2. exportujeme (např. v phpMyAdmin) do souboru celou lokální databázi, tzn. všechny tabulky, co v databázi byly (kromě tabulek wordpressu tam totiž mohou být i další, v závislosti na instalovaných doplňcích)
  3. exportovaný soubor otevřeme v textovém editoru podporujícím kódování UTF-8, jako např PSPad (MS Wordu se vyhněte obloukem)
  4. zvolíme možnost Najít a nahradit, a nahradíme všechny řetězce “localhost” za “jinadomena.cz
  5. soubor uložíme (ujistíme se, že ukládáme v kódování UTF-8)
  6. tento soubor importujeme do vzdálené databáze na novém serveru
  7. na vzdálený server taktéž nahrajeme kompletní adresářovou strukturu z localhostu
  8. pokusíme se načíst WordPress z nového umístění

Budeme-li mít štěstí, zobrazí se nám web tak, jak z localhostu. To by ale bylo příliš jednoduché, takže s tím moc nepočítejte :-)

Pokud se nám podaří přihlásit do administrace (http://jinadomena.cz/wp-admin/), zkontrolujeme ještě v administraci, zda je správně nastavena adresa webu.

Pokud jsme se dostali až sem, je čas řešit dílčí problémy. U mě se vyskytly problémy následující.

Kontrola a editace souboru .htaccess

Těžko říct, proč tomu tak je, nicméně bylo třeba modifikovat výchozí soubor .htaccess, a to následovně.

Místo tohoto kódu

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.*) index.php

použít tento:

RewriteBase /
 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.*) index.php [L]

Řešení problémů s pluginy

U mě problém způsobily v podstatě jen dva z instalovaných pluginů, a sice NEXTGen Gallery a cforms.

cforms

Tento plugin nešel ani aktivovat, protože způsobil fatální chybu. Problém se vyřeší, pokud z databáze, konkrétně z tabulky wp_options vymažeme celý řádek, jehož klíč option_name má hodnotu cforms_settings. Tímto ale přijdeme o kompletní nastavení pluginu cforms! Proto je nutné nejprve zálohovat veškerá naše nastavení (přímo pomocí samotného pluginu).

Postup je tedy následovný:

  1. zálohujeme veškeré nastavení cforms,
  2. v tabulce wp_options smažeme řádek s cforms_settings,
  3. aktivujeme plugin,
  4. importujeme zálohované nastavení.

AJAXová vylepšení způsobovala všemožné problémy (i přes korektní nastavení pluginu), proto jsem byl donucen je vypnout.

NEXTGen Gallery

Ze je kvůli zapnutému safe_mode problém s fyzickým vytvářením adresářů. Obdržíte zřejmě následující chybovou hlášku:

The server setting Safe-Mode is on !
If you have problems, please create directory wp-content/gallery/test and the thumbnails directory wp-content/gallery/test/thumbs with permission 777 manually !

Unable to create directory wp-content/gallery/test/thumbs !

Budete tedy muset pokaždé vytvářet konkrétní adresář ručně, a pak znovu přidat galerii se stejným názvem. Je to mírná komplikace, avšak pokud budeme nahrávat fotografie přímo přes FTP, není to zas až takový problém je rovnou vytvořit. Nějaké řešení by ale potěšilo - pokud ho někdo znáte, dejte mi prosím vědět! Problém jsem nakonec vyřešil sám, řešení popisuje článek NextGEN Gallery 0.99.1 + Safe Mode.

Kategorie: Tipy a triky
Všechny komentáře k tomuto článku můžete sledovat prostřednictvím RSS 2.0 kanálu.

Comments are closed.