it-swarm.asia

Nasıl Yapılır: Bir WordPress Kurulumunu Geliştirme'den Üretime Kolayca Taşıyın mı?

Bir kutu üzerinde geliştirme yapıyorum ve üretim için bir saniye kullanıyorum. Şu anda sadece veritabanını atıyorum ve sonra URL değişikliklerinin yerini alacak bir yer buluyorum; daha sonra dosyaları kopyalayın ve yeni SQL'i içe aktarın.

Bunu yapmanın daha iyi yolları var mı?

197
Ryan Gibbons

Mümkün olduğunda, WP_HOME ve WP_SITEURL öğelerini wp-config.php içine ayarladım. Bu, bir veritabanı dökümü ve ithalatı ile birleştirildiğinde, aşina olduğum tüm çözümler arasında en basit olanıdır.

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

35
Annika Backstrom

En sevdiğim hack; Üretim alanınızı geliştirme makinenize yönlendirmek için /etc/hosts'nize bir ayar ekleyin, makinenizde. Üretime dağıtmak için tüm dosyaları rsync ile veri tabanına aktarın.

Bu stratejinin riskleri açık; geliştirme ortamınızı üretim ortamınızla karıştırabilirsiniz.

Yine de kolay bir düzeltme.

27
Wietse Venema

Birkaç ay önce WP öğesine geçtiğimde benzer bir şey istedim, bu yüzden ssh üzerinden rsync ve mysqldump kullanan oldukça basit bir Shell betiği yazdım:

http://snarfed.org/sync_wordpress

Sofistike veya web tabanlı değil, ama bundan mutluyum.

9
ryan

WP Motor "Tek Tıklatma Aşaması" sunan yeni bir hizmettir:

WPEngine, “evreleme” adı verilen özel bir özelliğe sahiptir. Nasıl çalışır: Blogunuzda korkunç bir değişiklik yapmadan önce, “anlık görüntü” düğmesini tıklayın. Blogunuzun tam bir kopyasını çıkartır ve ayrı, güvenli bir alana yerleştiririz. İstediğin her şeyle oynayabilirsin; hiçbir şey canlı değil. Yalnızca hayata geçirmeye hazır olduğunuzda ana sitenize dokunursunuz.

Gelişimden üretime, özellikle de canlı bir siteden hızlıca geçiş yapmanın çok kolay bir yolu gibi görünüyor.

8
Travis Northcutt

Duplicator Plugin: İşte üzerinde çalıştığım bir eklenti. Şu anda beta sürümündedir ancak çoğu site için yapılan işi alır. Şu anda daha küçük WordPress kurulumlarında hedefleniyor. http://wordpress.org/extend/plugins/duplicator/

Kaynaklar: Eklenti için ek kaynaklar burada bulunabilir: http://lifeinthegrid.com/duplicator/

Topluluk: Lütfen başarılarınızı veya karşılaşabileceğiniz sorunları bize bildirin! Çeşitli konuları daha kolay yönetmek için lütfen sorunları WordPress.org eklenti forumlarına gönderin. Lütfen eklentiden herhangi bir kayıt verilerini çevrimiçi forumlara göndermeyin. Günlük verileri destek sitemize gönderilebilir.

7
Cory

İThemes firmasından BackUpBuddy adlı bir ürüne bakabilirsiniz. Sadece iki kez kullandım, her seferinde bir ya da iki aksama vardı, ama genel olarak umut verici görünüyor.

6
MikeK

Bu umut verici görünüyor. Bazı verilerin taşınmasını ele almak için bazı scriptler üzerinde çalışıyoruz, örneğin wp seçenekleri, db'deki yolları değiştirmek, medya üzerinden bir kopyalamak.

Sahip olduğum sorun, canlı sitenin diğerinin gelişim halindeyken büyümeye devam etmesi. Üzerinde çalıştığımız bir sitede günde 20 gönderi ve günde 3.000 yorum bulunuyor. Bu phpmyadmin veya komut satırı üzerinden geçmek için çok fazla veridir. Ayrıca, verileri taşımak her zaman bir nedenle UTF sorunlarına neden olur.

Ayrıca, menü seçenekleri DB'de depolanmış gibi gözüküyorsa, uğraşmam gereken daha çok şey var.

Tüm kodlarımı SVN’de kontrol ediyorum ve kodu FTP üzerinden sunucudan (Beanstalk) konuşlandırıyorum. Bu benim için DB değişiklikleri yapmaz ama yeni eklentileri etkinleştirmez.

Şu anki planım canlı sitedeki tüm değişiklikleri yapmak için geliştirdiğim sırada açık bir dosya oluşturmak.

Örneğin, dosyada okunabilir insan satırları olur

Etkinleştirmek için eklentileri, taşımak için wp seçenekleri, taşımak için görüntüleri, taşımak için sayfaları içerir. Sonra benim eklenti, manifest dosyasını algılayacak ve tüm değişiklikleri hazırlama sitesinde yapacaktı.

Bunu test ettikten ve her şeyi aldığımdan emin olduğumda, üretim üzerinde çalışacağından emin olabilirdim.

Bu eklenti hala sadece bir fikir, ama bunun için yazılmış bir kodum var.

Ayrıca, yalnızca DB'nizdeki URL’de değişiklikler yapmak istiyorsanız, aşağıdaki SQL’i kullanabilirsiniz.

sadece $old$ dosyasını eski alan adıyla ve $new$ öğesini yenisi ile değiştirin.

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

Bu sorunu kişisel olarak Github'daki Autopress adlı projemle çözüyorum. Henüz mükemmel bir çözümüm yok, ama özellikle wpengine insanlarının wpstage eklentisi ile yaklaşıyorum.

5
Vid Luther

Benzer bir hedefe sahip iki Google Summer of Code projesi:

4
Jan Fabry

2017 yılı itibariyle, bir WordPress veritabanının geliştirmeden üretime aktarılmasını ele almanın en iyi iki yolu.

WP DB Pro'yu Geçirme/WP DB'yi Senkronize Et

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

Bu WordPress eklentileri, WordPress kurulumları arasında veritabanı tablolarını Push, pull ve senkronize etmenizi sağlar. Bu, birçok nedenden dolayı bul/değiştir'den çok daha iyidir, çünkü:

  • Veritabanınızı MySQL veri dökümü olarak dışa aktarır (phpMyAdmin'e çok benzer)
  • URL’leri ve dosya yollarını bulup değiştirir
  • Serileştirilmiş verileri yönetir
  • Bilgisayarınıza bir SQL dosyası olarak kaydetmenizi sağlar

Yaptığım iş için para alma hayranıyım, bu yüzden Bay Brad Touesnard'ı desteklemenizi ve asıl şeyin lisans kopyasını satın almanızı öneririm. WP Sync DB bir kopyadır ve sonuç olarak her zaman desteğin arkasındadır. Bu eklentiyle işlem son derece basittir:

  1. Eklentiyi yerel ana makinenize ve üretim ortamınıza yükleyin/etkinleştirin
  2. Yerel ana bilgisayar/geliştirme sunucunuzdan üretiminize bir Push aktarımı yapılandırma
  3. Hangi tabloların aktarılacağı kurallarını doldurun ve gerçekleştirilecek kuralları bulun ve değiştirin
  4. Bu kadar!

Veritabanında Arama ve WordPress Veritabanlarının InterconnectIT ile Değiştirilmesi

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

Bu ücretsiz araç bir eklenti değildir, ancak WordPress üretim kurulumunuzun kök dizininde bulunur. Bu _ kadar iyi değildirWP DB Pro'yu geçirin, çünkü birkaç manuel adım gerektirir, ancak yine de sürekli çalışan mükemmel bir seçenektir. Bu yaklaşımı kullanırken işlem şöyle görünür:

  1. Yerel veri tabanınızı yedekleyin, en kısa zamanda yeniden alacağımızdan kesinlikle gereklidir.
  2. Komut dosyasını kurulum dizininizdeki bir klasöre ekleyin
  3. Bul ve değiştir'i veritabanında çalıştır
  4. Veritabanınızı dışa aktarın ve üretim ortamınız için saklayın
  5. Yerel sunucunuzu geri yüklemek için # 1 numaralı adımdan yedeklemenizi yeniden alın
  6. Üretim veritabanınıza bağlanın ve yedekleyin (bunları yapmadan önce her zaman yapmanız gerektiği gibi)
  7. 4 numaralı adımdan bulma/değiştirme yordamını çalıştırdıktan SONRA yaptığımız dışa aktarımı içe aktarın.

Daha hızlı bir yaklaşım kullanabilirsiniz, ancak bence kabul edilemez olan üretim siteniz için çalışmama süresi bulunuyor. Bu yüzden buna üretim diyoruz, değil mi?

3
Kevin Leary

Burada hiçbir iyi çözüm sıkıntısı olmasa da, paylaşım ruhu içinde bash konuşlandırma komut dosyasını yığına ekleyeceğimi düşündüm: https://github.com/jplew/SyncDB

SyncDB, bir Wordpress sitesinin yerel ve uzak versiyonlarını senkronize etmekten tedium'u çıkarmak için bash konuşlandırma komut dosyasıdır. Yerel bir ortamda çalışan geliştiricilerin (örn. MAMP) tek bir terminal komutuyla üretim sunucusundaki veya üretim sunucusundaki değişiklikleri hızlı bir şekilde "Push" veya "pull" yapmasını sağlar.

Bu komut dosyası, Mark Jaquith'in WP-Skeleton ile iyi çalışır ve tüm sitenizi (veritabanı, kod ve ortam) iki kolay adımda senkronize etmek için mysqldump, git ve rsync bantlarından yararlanır:

./syncdb
git Push hub master
3
JP Lew

http://wordpress.org/plugins/wp-clone-by-wp-academy/ kullanıyorum. Güzel çalışıyor!

Sadece 3 adım:

  1. Eklentiyi her iki siteye de yükleyin.
  2. Eski sitede bir yedekleme oluşturmak için eklentiyi kullanın.
  3. Size verdiği yedek URL'yi alın ve yeni sitedeki eklenti sayfasına takın, hemen gidin ve geçiş işleminiz birkaç saniye içinde tamamlandı!

Tüm URL'leri otomatik olarak ayarlar - seri hale getirilmiş dize değişimleri dahil - böylece widget yapılandırmalarını kaybetme riski yoktur.

Sahip olduğum tek sorun, daha büyük veritabanları olan (~ 300MB) bazı web siteleriyle ilgili ve bu da site yedeklemesini içe aktarırken PHP komut dosyası yürütme zaman aşımına uğramasına neden oldu.

3
jmotes

Subversion'ın export komutunu WordPress dosyalarını (http://core.svn.wordpress.org/tags//) ve depodaki tüm eklentileri (http://plugins.svn.wordpress.org//tags) yüklemek için kullanıyorum. //), sonra sadece tema ve özel eklentileri Zip ve normal şekilde yükleyin. Bunların hepsi çalıştıktan ve içeriksiz olarak çalıştıktan sonra, test DB'sini dışa aktarıyorum ve URL VE filepath (medya için depolanan) için bir arama/değiştirme yapıyorum ve boş bir veritabanına aktarıyorum, sonra wp-config'de veritabanı bilgisini değiştiriyorum. .php. Genellikle yaklaşık 10 - 20 dakika sürer.

3
John P Bloch

Normalde phpMyadmin'e giriş yaparak veritabanını yüklerim ve wp_options> siteurl ve wp_options> home içeriğini beklenen etki alanına düzenlerim. Gönderilerinizdeki ve sayfalarınızdaki URL’leri güncellemeniz gerekirse, yüklemeden önce URL’yi ve .SQL dosyasındaki medya/yükleme yolunu arayabilir/değiştirebilirsiniz. Hızlı bir iş.

3
Alex Costa

Bir süredir backupbuddy eklentisini kullanıyorum. Veritabanını ve tüm dosyaları yedeklemenizi, Zip olarak indirmenizi veya FTP yoluyla doğrudan başka bir sunucuya göndermenizi sağlar. Ayrıca URL sizin için bulup değiştirir. Tüm bu süreçten geçmem genellikle 5 dakika sürer. Ve tüm dosyalar sıkıştırılmış olduğundan yükleme/indirme işlemi çok daha hızlıdır. Ve hayır, onlar için çalışmıyorum, ama bu eklenti bu süreci gerçekten çok kolaylaştırdı.

1
gdaniel

Başka bir ödeme çözümü: Xtreme One tema çerçevesi yayımlanan sürüm 1.2 with Xtreme Backup , "Alt Öğelerinizin, Düzenlerinizin veya Widget'larınızın ayarlarını tüm ayarları/içeriği ile birlikte verir veya verir XML dosyası. "

1
Jan Fabry

sitelerimi IIS içinde çalıştırdığımdan (asp.net'i de çalıştırdım, bu yüzden pencerelere ihtiyacım var) Msft'ten WebPI kullanıyorum, yeni bir örnek yüklemek için şablonu kopyalayıp içe aktarma/dışa aktarma kullanıyorum veri.

Mükemmel değil ama her şey bir saatten az sürüyor.

Açıkçası, tek tıklamayla bir çözüme sahip olmak güzel olurdu, ama bu benim için en kolay bulduğum şeydi.

1
Sruly

RAMP Crowd Favorite'den gelen yeni bir içerik dağıtım eklentisi ve gerçekten kaygan görünüyor. 250 dolar olsa da, henüz denemedim. Öyle olsa, sadece harcanan zamanla kendisinin parasını öderim.

Bahsedilen diğer yöntemlerin çoğuna sahip olmasının en büyük yararı, yayınları, yorumları vb. Akıllıca bir araya getirebilmesidir. Yalnızca bir mysqldump almak değil, veritabanı için kaynak kontrolü gibidir. Örneğin, bir yayını dağıtırken, üretimde yoksa, o yazının etiketlerini de dağıtır.

1
Ian Dunn

Bir iş arkadaşı bunu buldu. İlginç bir kavram olsa da, göründüğü gibi çapraz sunucu işe yaramazsa. Hala araştırıyorum, ama sahneleme için harika bir iş gibi gözüküyor

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

1
Ryan Gibbons

Soruyu sorduğunuzda bu olmayabilir, ancak birkaç aydır Blogvault adlı bir servisi kullanıyorum ve bunu kusursuzca yaptım. Muhtemelen 50'den fazla geçiş yaptım (geçiş alanlarını, alt alanları ve web ana bilgisayarlarını), bir aksamadan değil ve hiç vakit almıyor.

Ücretli bir hizmet (etki alanı/ay başına), ancak bu kadar değil.

1
Larry

Bu şimdiye kadarki en kolay yol: https://themes.artbees.net/docs/website-migration/
Sadece iki tıklama alır. Biri, biri ithal edilecek.

Hepsi bir arada WP Geçiş eklentisi kullanılarak mümkündür. Yukarıdaki link, nasıl kullanılacağını gösterir.

1
Mohsenr1

Siteler için sunucu geçişlerini işlemek için başka bir yararlı araç WordPress CLI'dir, bu makale ne yapabileceği hakkında iyi bir genel bakışa sahiptir, ancak özellikle "Arama ve Değiştirme" bölümü eski/dev site URL'sine yapılan tüm başvuruları bulmak için yararlıdır. :

WP-CLI ile Gelişmiş WordPress Yönetimi

1
Rick Curran

Benim favorilerimden birini vereyim :-)

// 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 -------------------
{

... ve sonra oradan kendi yolunda çalışıyorsun. DB_NAME, DB_USER ... table_prefix. Şahsen ben ALTERNATE_WP_CRON'u yerel olarak (geliştirici değilseniz ( bazı can sıkıcı uyarıları önlemek için ), WP_DEBUG) (hem geliştirici değilseniz) hem de sadece canlı (eğer öyleyseniz), başka bir ini_set('display_errors', '0'); da yapabilirim yukarıda belirtildiği gibi son olarak iyi, karınca: WP_HOME ve WP_SITEURL ilgili yerel/gerçek URL'ye.

Hepsi bu kadar, klasik WordPress'in üzerinde hiçbir şey kalmadı 'Hepsi bu, düzenlemeyi bırak!' satır ...

192.168. Bölüm, yerel ağınızdaki bazı yerel sınamaları (örn. yastıklardan veya telefonlardan) yapmanızı sağlar.

$ GLOBALS ['is_local'], bazı ekstra hata ayıklama çıktıları vb. İçin tema geliştirmenizde kullanışlı olabilir.

1
Frank Nocke

Bu cevabı bir süre takip ettikten sonra kendi küçük eklentisini oluşturdum - Pitta Migration . Sebepleri:

  1. Burada denenen bütün fikirlerden en basit olanı, WP_HOME ve WP_SITEURL seçenekleridir.
  2. Daha sonra bunları, iki eklenti wp_options URL'sini ayarlamak için kullanırım.
  3. Bu, veritabanımda neyin değiştirildiğine% 100 güven veriyor
  4. Bu aynı zamanda platformlar arası da çalışır (tüm bu bash scriptleri Windows'ta güzel bir şekilde çalmaz)
  5. Eklentinin ne yaptığını anlamak kolaydır
  6. İki sabitin ötesinde bir yapılandırma yok - yerel veritabanınıza bir mysqldump ve bir mysql alın ve eklenti, sabit ve tablonun farklı olduğunu ve bunları eşleşecek şekilde güncellediğini görür
  7. Metin arama ve değiştirme yok
  8. Veritabanınızı paylaşma şansı yok - İki güncelleme yapmak için WordPress Veritabanı Nesnesini kullanıyorum.
  9. WordPress Skeleton gibi şeylerle güzelce oynuyor ve kaynak kontrolünde her şeye sahip olabileceğiniz ve yerel bir yapılandırma ayarlayabileceğiniz
  10. WordPress eklentileri dizinine koydum ve/ Github böylece ücretsiz, tamamen açık kaynaklıdır, sizin için kolay ve kurulumu kolay
  11. Kurulduktan sonra bunu unutabilirsiniz ve 'sadece çalışması gerekir' - veritabanının değiştirildiğini söylemek için size küçük bir not verir.
  12. Herhangi bir yedekleme/FTP/geri yükleme işlemi ile çalışması gerekir
0
icc97

Sürekli senkronizasyon elde etmeye çalışıyorsanız, url veya siteye özgü verileri yeniden yazmak için rsync'i özel bir cron işi ile birlikte kullanmanızı öneririz.

0
user92899

Benim düşünceme göre takip etmenin en kolay yolu manuel transfer .. Sadece wp-content klasörünü ve wp-config.php dosyasını yeni ana bilgisayara kopyala. Veritabanını eski ana bilgisayardan dışa aktarın ve yeni bir ana bilgisayar veritabanına alın.

Yeni Ana Bilgisayar veritabanında wp-seçenek tablosuna gidin ve site URL'sini ve Blog URL'sini eski Ana Bilgisayardan Yeni Ana Bilgisayar adresi olarak değiştirin. http: // localhost/wp ila http://example.com gibi

Şimdi wp-config dosyasında, sadece yeni Host bilgisi ile veritabanı ve kullanıcı bilgilerini değiştirin.

Şimdi yeni wp-admin'de oturum açın ve ayarlara gidin ve kalıcı bağlantıyı kaydedin.

Bitirdiniz. Herhangi bir eklenti kullanmadan bu basit olduğunu düşünüyorum.

Farklı türde eklentiler denedim ve bunların hepsinde birçok sorun var.

Bu yüzden sanırım daha kolay olan bu basit manuel transferi tercih ediyorum.

0