@ Insanity5902 : Bir WordPress sitesinin bir kutudan diğerine konuşlandırılması, ilk günden beri WordPress ile çalışmaya başladığımdan beri PITA oldu. (Gerçeği söylemek gerekirse, WordPress ile başlamadan önce 2 yıl boyunca Drupal'lı bir PITA olduğu söyleniyor, bu yüzden sorun kesinlikle WordPress ile değil.)
Bir siteyi taşımak için her zaman çok sık tekrarlanan çaba harcamak zorunda kalmam ve beni istediğim sıklıkta test etmekten alıkoymam beni rahatsız etti. Yaklaşık 4-6 ay önce webhost'un göç problemini çözmek için bir eklenti üzerinde çalışmaya başladım ve WP Tavern forumundaki fikirlerimden bahsettim .
Bugün çok hızlı bir şekilde ilerlemeye başladım ve hemen hemen çalışmasını sağladım ve rahatlıkla " WP Migrate Webhosts " olarak adlandırıyorum . Eklenti hala çok fazla beta olsa da (muhtemelen alfa bile) sorunuzu verdiğim halde, insanların bunu yapmaya başlamasına izin vermeye hazır olduğumu düşünüyorum.
Öngörülen kullanım durumu şudur:
- ilk önce geliştirici, değiştirilen tüm tema ve eklenti dosyalarını FTP üzerinden yüklemeyi ele alır,
- daha sonra geliştirme MySQL veritabanını test sunucusuna tamamen ve son olarak yükler.
- daha sonra herhangi bir referansı önceki etki alanından yenisine geçirmek için eklentiyi çalıştırır. (My eklenti yok değil ; yeni veritabanı alanları veya canlı verilerle tabloların birleştirilmesi çözmeye teşebbüs OLDUĞUNU nasıl çözüleceğini emin değilim çok daha büyük bir sorundur.)
Eklentiyi web sitemden indirebilir ve eklentiler dizininize açabilirsiniz (bunun nasıl yapılacağını bilmiyorsanız, o zaman bu eklenti sizin için değildir, çünkü onu kullanmak için ne yaptığını bilen birini gerektirir). Bu eklentiyi çevrimiçi olarak WordPress.org sitesinde yayınlayabilene kadar beklettikten sonra orada aramalıyım.
Bunu kullanmak için size farklı bir yaklaşım wp-config.php
dışarı yorum yaparak normal dört (4) tanımlar DB_NAME
, DB_USER
, DB_PASSWORD
ve DB_HOST
bunun yerine kayıt webhosts için varsayılan değerleri ve ardından her host kendisi hakkında bilgi kayıt. İşte bu bölümün wp-config.php
neye benzediği gibi olabilir (ilk bölümün açıklama yapılan gereksiz kod olduğunu not edin ve ayrıca .dev
günlük geliştirmeyi kolaylaştırmak için host dosyamı yerel makinemde yönlendirilemeyen üst seviye alan adlarıyla kurduğumu unutmayın . Mac'te VirtualHostX bunu bir esinti yapar):
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');
/** MySQL database username */
//define('DB_USER', 'wp30_anon');
/** MySQL database password */
//define('DB_PASSWORD', '12345');
/** MySQL hostname */
//define('DB_HOST', '127.0.0.1:3306');
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
'database' => 'example_db',
'user' => 'example_user',
'password' => '12345',
'host' => 'localhost',
'sitepath' => '', // '' if WordPress is installed in the root
));
register_webhost('dev',array(
'name' => 'Example Local Development',
'host' => '127.0.0.1:3306',
'domain' => 'example.dev',
'rootdir' => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
'name' => 'Example Test Server',
'rootdir' => '/home/example/public_html/test',
'domain' => 'test.example.com',
));
register_webhost('stage',array(
'name' => 'Example Staging Server',
'rootdir' => '/home/example/public_html/stage',
'domain' => 'stage.example.com',
));
register_webhost('live',array(
'name' => 'Example Live Site',
'rootdir' => '/home/example/public_html/',
'password' => '%asd59kar12*fr',
'domain' => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');
Umarım bu (çoğunlukla) kendi kendini açıklayıcıdır. Elimden geldiğince kodu gibi temiz hale getirmek için çalıştı ama maalesef bu iki şifreli gerektirir require_once()
bana "için hiçbir yolu yoktu çünkü öncesinde ve webhost kayıt kodu bloktan sonra hatları kanca " WordPress önce wp-config.php
denir.
Güncellemenizi yaptıktan wp-config.php
sonra wp-migrate-webhosts
yönetici ekranına gitmek için URL kısayolunu kullanabilirsiniz :
http://example.com/wp-migrate-webhosts
Açıklama metni adil biraz vardır ve taşımasına olanak tanır aşağıdaki gibi bir yönetici ekranına götürecektir yukarıdaki DAN (taşınma alanları seçtikten sonra tek bir tıklama ile diğer web host alan adlarının herhangi NOT : Bu örnek, gidiş gösterir AŞAĞI yerel kalkınma ancak geri kalan test / aşamasına / canlı sunuculardan o taşıyabilir güvence iÇİN bulunduğu edilecek olur herhangi bir etki. Bu da demektir eklenti varolan canlı siteyi alıp hızla yerel bir geliştirme ortamı çalışma almak için büyük olacak! ):
Bu bağlamda " geçiş " açık değilse , mevcut veritabanındaki tüm referansları o anda tanımlanmış webhost için uygun olacak şekilde güncellemek anlamına gelir (ve " geçerli " denetlenerek engellenir$_SERVER['SERVER_NAME']
.)
Eklenti için harika olan şey, bazı temel göçleri gerçekleştirmesi, ancak herkes onu bağlayıp kendi geçişlerini gerçekleştirebiliyor . Eğer veritabanında görüntülere tam yollarını saklanan bir galeri eklentisi eklerseniz Örneğin, kanca olabilir migrate_webhosts
"geçilecek eylemi gelen " webhost ve " için meta bir dizi olarak her bir" host ve izin olacağım Geçiş yapmak için SQL veya ilgili herhangi bir WordPress API işlevini kullanarak veritabanında yapmanız gerekenleri gerçekleştirmek için. Evet, herhangi birimiz eklenti olmadan bunu yapabiliriz, ancak eklenti olmadan gereken tüm kodu yazmanın değerinden daha fazla çaba olduğunu gördüm. Eklenti ile bu küçük kancaları yazmak ve üstesinden gelmek çok daha kolay.
Ayrıca, test etmedim, test etmediğim vakalarda geçişlerimin başarısız olduğunu ve belki de eklentiyi geliştirmeme yardımcı olabilir misiniz? Gmail hesabım aracılığıyla bana e-posta gönderebilecek herkes (takma adım "mikeschinkel.")
Ayrıca, eklenti neye tanıdığı olanlara ilave olarak kullanıcı tanımlamak webhost meta kabul etmek tasarlanmıştır database
, user
, password
, host
, domain
olabilir vs. Mükemmel bir örnek googlemaps_apikey
bu Google Haritalar'ın eklentisi ihtiyaçları her bir alan için farklı API anahtarlarını saklayabilirsiniz nerede doğru çalışması için (Google Haritalar eklentisini kullananlar arasında, bir sunucuyu canlı bir sunucuya uygulama dağıtmadı ve kodu doğru API anahtarına değiştirmeyi unuttu mu? Hadi, dürüst olun ... :) Bu eklentiyle, googlemaps_apikey
register_webhost () dizinizdeki bir eleman ve küçük bir özel migrate_webhosts
kanca, kaygıyı etkili bir şekilde ortadan kaldırabilir!
Peki bu konuda. @ İnsanity5902'nin sorusu onu tetiklediği için bu eklentiyi burada WordPress Cevap Borsasında görüyorum. Yararlı olup olmadığını, uygunsa buraya veya e-posta yoluyla bildirin
PS Eğer bunu kullanmaya karar verirseniz, bunun alfa / beta olduğunu hatırlayın ve bu, şimdi kullanmak ve daha sonra birçok el tarafından dövüldükten sonra piyasaya sürülen sürümü kullanmak istiyorsanız, bazı küçük ameliyatlar için hazırlıklı olacağı anlamına gelir.
PPS Bu konuda hedeflerim nelerdir? Bu göçü WordPress çekirdeğinde görmeyi çok seviyorum, böylece herkes buna erişebilir. Ancak bundan önce, birçok insanın potansiyel olarak yaratabileceği daha fazla problem çözdüğünden emin olmak için onu kullanmakla ilgilenmesi gerekir. Bu nedenle, fikri beğenirseniz, elbette, onu kullanın ve sonunda WordPress çekirdeğine umutlu bir şekilde dahil olmak için ivme kazanmama yardımcı olun.