it-swarm-eu.dev

Jak: Snadno přesunout WordPress nainstalovat z vývoje do výroby?

Vyvíjím vývoj na jedné krabici a na výrobu používám druhou. Právě teď jsem jen výpis databáze a pak najít náhradu za změny URL; pak zkopírujte soubory a importujte nový SQL.

Existují lepší způsoby, jak toho dosáhnout?

197
Ryan Gibbons

Pokud je to možné, nastavím WP_HOME a WP_SITEURL v wp-config.php. V kombinaci s databázovým výpisem a importem je to nejjednodušší ze všech známých řešení.

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php

35
Annika Backstrom

Můj oblíbený hack; přidejte nastavení do souboru /etc/hosts, aby výrobní doména směřovala k vašemu vývojovému boxu, právě na vašem počítači. Chcete-li nasadit do výroby, rsync všechny soubory a Push databáze přes.

Rizika této strategie jsou jasná; můžete si zaměňovat své vývojové prostředí s výrobním prostředím.

Přesto je to stále snadná oprava.

27
Wietse Venema

Chtěl jsem něco podobného, ​​když jsem několik měsíců migroval do WP, takže jsem napsal velmi jednoduchý skript Shell, který používá rsync a mysqldump přes ssh:

http://snarfed.org/sync_wordpress

Není to sofistikované ani webové, ale jsem s tím spokojený.

9
ryan

WP Engine je nová služba, která nabízí "One-Click Staging":

WPEngine má exkluzivní funkci nazvanou „staging“. Zde je návod, jak to funguje: Před provedením děsivé změny v blogu klikněte na tlačítko „snapshot“. Vyrobíme kompletní kopii vašeho blogu a nastavíme ji v oddělené, bezpečné oblasti. Můžete hrát s čímkoli chcete; nic živého. Dotknete se svého hlavního webu pouze v případě, že jste připraveni žít živě.

Vypadá to jako velmi snadný způsob, jak rychle přejít z vývoje na výrobu, zejména s již žijící stránky.

8
Travis Northcutt

Duplikátor Plugin: Zde je plugin, na kterém jsem pracoval. V současné době je v beta verzi, ale pro většinu webů je to práce. Právě teď je zaměřen na menší instalace WordPress. http://wordpress.org/extend/plugins/duplicator/

Zdroje: Další zdroje pro plugin naleznete zde: http://lifeinthegrid.com/duplicator/

Komunita: Prosím, dejte nám vědět o vašich úspěších nebo jakýchkoli problémech, na které byste mohli narazit! Ve snaze snadněji spravovat různé podprocesy, prosím, pošlete otázky do fóra pro WordPress.org plugin. Nezasílejte proto žádná data z pluginu do online fór. Záznamová data mohou být zaslána na naše stránky podpory.

7
Cory

Můžete se podívat na produkt z iThemes, nazvaný BackUpBuddy . Použil jsem to jen dvakrát, pokaždé jsem měl zádrhel nebo dvě, ale celkově to vypadá slibně.

6
MikeK

To vypadá slibně. Pracujeme na některých skriptech, abychom zvládli migraci některých dat, například wp-options, změnu cesty v db, kopírování přes média.

Problém, který mám, je, že živé stránky nadále rostou, zatímco druhá je ve vývoji. Jeden web, na kterém pracujeme, má 20 příspěvků denně a více než 3 000 komentářů denně. To je příliš mnoho dat, které lze přesunout s phpmyadminem nebo přes příkazový řádek. Také přesunutí dat kolem vždy způsobuje problémy UTF z nějakého důvodu.

Také, teď, když to vypadá, že možnosti menu jsou uloženy v DB, mám ještě více zabývat.

Zkontroluji všechny své kódy do SVN a nasazení kódu přes FTP ze serveru (Beanstalk). To neznamená, že změny v DB pro mě, nebo aktivovat nové pluginy.

Můj plán právě teď je vytvořit soubor manifestu, když vyvíjím všechny své změny na živém webu.

Například soubor by měl čitelné řádky

To by zahrnovalo pluginy pro aktivaci, wp-možnosti přesunout, obrázky k pohybu, stránky k pohybu. Pak můj plugin, by detekovat soubor manifestu a provést všechny změny na pracovní místo.

Jakmile jsem to otestoval a byl jsem si jistý, že mám všechno, mohl bych si být jistý, že to bude fungovat na výrobě.

Tento plugin je stále jen nápad, ale mám pro něj napsaný kód.

Pokud chcete provést změny pouze adresy URL ve vaší databázi DB, můžete použít následující SQL.

stačí nahradit $old$ starou doménou a $new$ novým

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;
5
Andrew

Osobně se touto otázkou zabývám svým projektem na Github, nazvaném Autopress . Ještě nemám dokonalé řešení, ale blížím se, zejména s pluginem wpstage z lidí wpengine.

5
Vid Luther

Dva projekty Google Summer of Code, které mají podobný cíl:

4
Jan Fabry

Od roku 2017 zde jsou dva nejlepší způsoby, jak jsem našel zvládnout převod databáze WordPress z vývoje do výroby.

WP Migrace DB Pro/WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

Tyto pluginy WordPress umožňují Push, pull a synchronizaci databázových tabulek mezi instalacemi WordPress. To je mnohem lepší než najít/nahradit z mnoha důvodů, protože:

  • Exportuje databázi jako výpis dat MySQL (podobně jako phpMyAdmin)
  • Vyhledává a nahrazuje adresy URL a cesty k souborům
  • Zpracovává serializovaná data
  • Umožňuje uložit jej do počítače jako soubor SQL

Jsem fanouškem placení za práci, kterou dělám, takže doporučuji, abyste podpořili pana Brada Touesnarda a zakoupili si kopii skutečné licence. WP Sync DB je replika a výsledkem je vždy podpora. S tímto pluginem je tento proces jednoduchý:

  1. Nainstalujte/aktivujte plugin ve vašem lokálním a produkčním prostředí
  2. Nakonfigurujte přenos Push z vašeho localhost/vývojového serveru do své produkce
  3. Vyplňte pravidla, pro které tabulky se mají přenášet, a definujte pravidla hledání a nahrazování, která chcete provést
  4. A je to!

Databáze Vyhledávání & Nahradit WordPress databáze InterconnectIT

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Tento bezplatný nástroj není plugin, ale je nainstalován ve vašem kořenovém adresáři instalace WordPress instalace. To není tak dobré jako WP Migrace DB Pro, protože to vyžaduje několik manuálních kroků, ale přesto je to skvělá volba, která konzistentně funguje. Při použití tohoto přístupu proces vypadá takto:

  1. Zálohujte si lokální databázi, je to naprosto nezbytné, protože ji brzy znovu importujeme
  2. Přidat skript do složky v kořenovém adresáři nainstaluje
  3. Spusťte vyhledávání a nahrazení v databázi
  4. Exportujte databázi a uložte ji pro své výrobní prostředí
  5. Znovu uložte zálohu z kroku č. 1 a obnovte svůj localhost
  6. Připojte se k produkční databázi a zálohujte ji (jak byste měli vždy dělat tyto věci)
  7. Import exportu provedeného po spuštění rutiny find/replace z kroku # 4

Můžete použít rychlejší přístup, ale zahrnuje prostoje pro vaše výrobní místo, které je podle mého názoru nepřijatelné. Proto tomu říkáme výroba, že?

3
Kevin Leary

I když zde není dostatek dobrých řešení, v duchu sdílení jsem si myslel, že bych přidal svůj bash nasazení skript na hromadu: https://github.com/jplew/SyncDB

SyncDB je bash nasazení skriptu chtěl vzít tedium ze synchronizace místních a vzdálených verzích webu Wordpress. To umožňuje vývojářům pracujícím v místním prostředí (např. MAMP), aby rychle "Push" nebo "pull" změny na nebo z jejich produkčního serveru s jedním příkazem terminálu.

Tento skript funguje dobře s Markem Jaquithem WP-Skeleton a využívá mysqldump, git a rsync k synchronizaci celého webu - databáze, kódu a médií - ve dvou jednoduchých krocích:

./syncdb
git Push hub master
3
JP Lew

Používám http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Funguje to pěkně!

Jen 3 kroky:

  1. Nainstalujte plugin na obou stránkách.
  2. Použijte plugin pro generování zálohy na starém webu.
  3. Vezměte si záložní URL, které vám dává, a připojte jej do stránky pluginu na novém webu, stiskněte go a vaše migrace je dokončena během několika sekund!

Upravuje všechny adresy URL automaticky - včetně nahrazení serializovaných řetězců - takže nehrozí riziko ztráty konfigurace widgetů atd.

Jediné problémy, které jsem měl, jsou s některými webovými stránkami s většími databázemi (~ 300 MB), které způsobily, že PHP časový limit provádění skriptů během importu zálohy stránek.

3
jmotes

Použil jsem exportní příkaz Subversion k instalaci souborů WordPress (http://core.svn.wordpress.org/tags//) a všech pluginů v úložišti (http://plugins.svn.wordpress.org//tags //), pak jen Zip téma a vlastní pluginy a nainstalovat je normálně. Jakmile to vše proběhne a běží bez obsahu, exportuji testovací databázi a provedu vyhledávání/nahrazení adresy URL A souboru filepath (uložené pro média) a importuji do prázdné databáze, poté stačí přepnout informace o databázi do wp-config .php. Obecně mi trvá asi 10 - 20 minut.

3
John P Bloch

Za normálních okolností se přihlašuji do phpMyadmin nahrát databázi a upravovat obsah wp_options> siteurl a wp_options> domů do očekávané domény. Potřebujete-li aktualizovat adresy URL v rámci svých příspěvků a obsahu stránek, můžete před nahráním provést vyhledávání/nahrazení adresy URL a cesty média/nahrání v souboru .SQL. Je to rychlá práce.

3
Alex Costa

Momentálně používám plugin backupbuddy. To vám umožní vytvořit zálohu databáze a všech souborů, stáhnout jako Zip nebo poslat přímo na jiný server přes FTP. Rovněž vyhledává a nahrazuje adresu URL. Obvykle mi trvá asi 5 minut, než projdu celým procesem. A protože všechny soubory jsou na zip, proces nahrávání/stahování je mnohem rychlejší. A ne, nepracuji pro ně, ale tento plugin tento proces opravdu usnadnil.

1
gdaniel

Další placené řešení: Xtreme One theme framework vydaná verze 1.2 s Xtreme Backup která umožňuje "exportovat nebo importovat nastavení vašich Childthemes, Layouts nebo Widgetů se všemi jejich nastaveními/obsahem jako Soubor XML. "

1
Jan Fabry

protože provozuji své stránky v IIS (také spouštím asp.net, takže potřebuji okna) Používám WebPI z Msft k instalaci nové instance, pak jsem kopírovat šablonu a použít import/export k přenosu data.

Není to dokonalé, ale celá věc trvá méně než hodinu.

Samozřejmě by bylo hezké mít řešení jedním kliknutím, ale to je to, co jsem pro mě nejjednodušší.

1
Sruly

RAMP je nový plugin pro nasazení obsahu z oblíbené položky Crowd Favorite a vypadá to opravdu hladce. Je to však 250 dolarů, takže jsem to ještě nevyzkoušel. Mohlo by to ale platit jen za to, kolik času ušetřil, takže to zvažuji.

Velkou výhodou, kterou má nad většinou zmíněných metod, je to, že dokáže inteligentně sloučit příspěvky, komentáře atd. Není to jen import mysqldump, je to spíš jako řízení zdrojů pro databázi. Například, když nasadíte příspěvek, nasadí také tagy pro tento příspěvek, pokud již neexistují ve výrobě.

1
Ian Dunn

To zjistil spolupracovník. Zajímavý koncept, i když to nefunguje cross server to vypadá. Stále to zkoumám, ale vypadá to, že by to mohlo fungovat skvěle pro instanci inscenace

http://code.google.com/p/deploymint/

1
Ryan Gibbons

To asi nebylo, když jste se ptali na tuto otázku, ale na pár měsíců jsem používal službu s názvem Blogvault a to bezchybně. Pravděpodobně jsem udělal více než 50 migrací (překračování domén, subdomén a webhostingu), ne zádrhel a vůbec ne.

Je to placená služba (za doménu/měsíc), ale ne tolik.

1
Larry

Toto je nejjednodušší způsob, jak: https://themes.artbees.net/docs/website-migration/
Trvá pouze dvě kliknutí. Jeden pro export, jeden pro import.

Je možné použít plugin Migrace vše v jednom WP. Výše uvedený odkaz ukazuje, jak jej používat.

1
Mohsenr1

Dalším užitečným nástrojem pro zpracování migrací serverů pro servery je WordPress CLI, tento článek má dobrý přehled o tom, co může udělat, ale konkrétně sekce "Vyhledávání a nahrazování" je užitečná pro nalezení všech odkazů na staré URL adresy/dev. :

Pokročilá správa WordPress s WP-CLI

1
Rick Curran

Dejte mi jednu z mých oblíbených :-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_Host'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{

... a pak odtud pracujete. DB_NAME, DB_USER ... table_prefix. Osobně zapnu ALTERNATE_WP_CRON na lokálních (abych se vyhnul některým nepříjemným varováním ), WP_DEBUG na obou (pokud nejste vývojář) nebo na živě (pokud jste), další ini_set('display_errors', '0'); pro živý by mohl také dělat dobrý, ant poslední, jak je uvedeno výše: WP_HOME a WP_SITEURL k příslušné místní/skutečné url.

To skoro všechno, nic nezůstalo nad klasickou WordPress 'To je všechno, přestat editovat!' řádek ...

192.168. část umožňuje provádět nějaké lokální testování (tj. z padů nebo telefonů) v rámci místní sítě)

$ GLOBALS ['is_local'] se může hodit i ve vašem vývoji témat, pro některé další výstupy ladění atd.

1
Frank Nocke

Poté, co jsem tuto odpověď na chvíli sledoval, jsem vytvořil svůj vlastní malý plugin - Pitta Migration . Důvody jsou:

  1. Ze všech zde vyzkoušených nápadů jsou nejjednodušší možnosti WP_HOME a WP_SITEURL
  2. Pak jsem použít tyto nastavit dvě odpovídající wp_options URL - což se týká, když pluginy/motivy tyto ignorovat
  3. To mi dává 100% důvěru v to, co se v mé databázi mění
  4. Funguje to i napříč platformami (všechny tyto bash skripty nehrají na Windows dobře)
  5. Je snadné pochopit, co plugin dělá
  6. Neexistuje žádný konfigurátor mimo dvě konstanty - udělat mysqldump a mysql import do vaší lokální databáze a plugin vidí, že konstanta a tabulka se liší a aktualizuje je tak, aby odpovídaly
  7. Žádné textové vyhledávání a nahrazení
  8. Žádná šance k tomu, aby vaše databáze - já používám WordPress databázový objekt udělat dvě aktualizace a nic víc
  9. Hraje pěkně s podobnými věcmi WordPress Skeleton kde můžete mít vše ve zdrojovém řízení a nastavit lokální config
  10. Dal jsem to do WordPress pluginy adresáře a na Github tak, že je to zdarma, plně opensource, snadné pro vás vidlice a snadnou instalaci
  11. Jakmile je nainstalována, můžete na to zapomenout a mělo by to „pracovat“ - to vám dává malou informaci, že databáze byla změněna
  12. Mělo by fungovat s jakýmkoliv procesem zálohování/FTP/obnovení
0
icc97

Pokud se pokoušíte dosáhnout nepřetržité synchronizace, doporučuji použít rsync spolu s vlastní úlohou cronu k přepsání všech url nebo specifických dat.

0
user92899

Podle mého názoru je nejjednodušší způsob, jak postupuji, ruční převod. Stačí zkopírovat složku wp-content a soubor wp-config.php do nového hostitele. Exportujte databázi ze starého hostitele a importujte ji do nové databáze nového hostitele.

V nové databázi hostitele přejděte do tabulky možností wp a změňte adresu URL webu a adresu URL blogu na adresu nového hostitele ze starého hostitele. jako z http: // localhost/wp na http://example.com

Nyní v souboru wp-config stačí změnit informace o databázi a uživateli s novými informacemi hostitele.

Nyní se přihlaste do nového wp-admin a přejděte na nastavení a uložte permalink.

Jsi hotov. Myslím, že je to jednoduché bez použití pluginů.

Zkoušel jsem různé druhy pluginů a všechny z nich mají mnoho druhů problémů.

Dávám přednost tomuto jednoduchému ručnímu převodu, který je snadnější.

0
Md. Amanur Rahman