ฉันจะพัฒนาบนกล่องเดียวและใช้ที่สองสำหรับการผลิต ตอนนี้ฉันเพิ่งถ่ายโอนฐานข้อมูลแล้วทำการค้นหาแทนที่สำหรับการเปลี่ยนแปลง URL; จากนั้นคัดลอกไฟล์และนำเข้า SQL ใหม่
มีวิธีที่ดีกว่าในการทำเช่นนี้?
ฉันจะพัฒนาบนกล่องเดียวและใช้ที่สองสำหรับการผลิต ตอนนี้ฉันเพิ่งถ่ายโอนฐานข้อมูลแล้วทำการค้นหาแทนที่สำหรับการเปลี่ยนแปลง URL; จากนั้นคัดลอกไฟล์และนำเข้า SQL ใหม่
มีวิธีที่ดีกว่าในการทำเช่นนี้?
คำตอบ:
@ Insanity5902 : การปรับใช้ไซต์ WordPress จากกล่องหนึ่งไปยังอีกกล่องเป็น PITA มาตั้งแต่วันแรกที่ฉันเริ่มทำงานกับ WordPress (ความจริงจะบอกว่ามันเป็น PITA กับ Drupal เป็นเวลา 2 ปีก่อนที่ฉันจะเริ่มต้นด้วย WordPress ดังนั้นปัญหาไม่ได้เกิดขึ้นกับ WordPress เท่านั้น)
มันรบกวนฉันว่าทุกครั้งที่ฉันต้องการย้ายเว็บไซต์ฉันต้องใช้ความพยายามซ้ำซ้อนบ่อยครั้งมากและมันทำให้ฉันไม่สามารถปรับใช้เพื่อทดสอบบ่อยเท่าที่ฉันต้องการ ดังนั้นประมาณ 4-6 เดือนที่ผ่านมาผมเริ่มทำงานในปลั๊กอินเพื่อแก้ปัญหาการโยกย้ายโฮสต์และที่ผมกล่าวถึงความคิดของฉันในฟอรั่ม WP โรงเตี๊ยม
กรอไปข้างหน้าอย่างรวดเร็วจนถึงทุกวันนี้และฉันก็ใช้งานได้ดีและฉันก็เรียกมันว่า " WP Migrate Webhosts " แม้ว่าปลั๊กอินยังคงเป็นเบต้ามาก (อาจเป็นอัลฟ่า) ตามคำถามของคุณฉันคิดว่าฉันพร้อมที่จะให้ผู้คนเริ่มต่อสู้กับมัน
การใช้งานกรณีที่จินตนาการคือ:
คุณสามารถดาวน์โหลดปลั๊กอินจากเว็บไซต์ของฉันและเปิดเครื่องรูดลงในไดเรกทอรีปลั๊กอินของคุณ (ถ้าคุณไม่ทราบวิธีการทำเช่นนี้แล้วปลั๊กอินนี้ไม่ได้สำหรับคุณเพราะมันต้องการคนที่รู้ว่าพวกเขากำลังทำอะไรเพื่อใช้งาน) เก็บปลั๊กอินนี้ออนไลน์จนกว่าฉันจะปล่อยให้ WordPress.org หลังจากนั้นคุณควรมองหามันที่นั่น
ที่จะใช้มันคุณใช้วิธีการที่แตกต่างกันในของคุณwp-config.php
ที่ปกติโดยแสดงความคิดเห็นออกสี่ (4) กำหนดDB_NAME
, DB_USER
, DB_PASSWORD
และDB_HOST
และแทนที่จะลงทะเบียนค่าเริ่มต้นสำหรับผู้ให้บริการและจากนั้นการลงทะเบียนข้อมูลเกี่ยวกับโฮสต์แต่ละตัวของมันเอง นี่คือสิ่งที่กลุ่มของwp-config.php
อาจมีลักษณะ (หมายเหตุส่วนแรกคือรหัสที่ไม่จำเป็นออกความเห็นและยังทราบว่าฉันตั้งค่าไฟล์โฮสต์ของฉันบนเครื่องท้องถิ่นของฉันกับ.dev
โดเมนระดับบนสุดที่ไม่สามารถกำหนดเส้นทางได้เพื่อให้การพัฒนาแบบวันต่อวันง่ายขึ้น บน Mac VirtualHostXทำให้เป็นเรื่องง่าย):
// ** 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');
หวังว่านี่คือคำอธิบายตนเอง (ส่วนใหญ่) ฉันพยายามทำให้โค้ดสะอาดที่สุดเท่าที่จะทำได้ แต่น่าเสียดายที่มันต้องใช้สองrequire_once()
บรรทัดที่เป็นความลับทั้งก่อนและหลังบล็อกของรหัสการลงทะเบียนเว็บโฮสต์เนื่องจากไม่มีวิธีที่ฉันจะ " ขอ " WordPress ก่อนที่จะwp-config.php
ถูกเรียก
เมื่อคุณอัปเดตwp-config.php
แล้วคุณสามารถใช้ทางลัด URL wp-migrate-webhosts
เพื่อไปที่หน้าจอผู้ดูแลระบบเช่น:
ด้านบนจะนำคุณไปยังหน้าจอผู้ดูแลระบบดังต่อไปนี้ซึ่งมีข้อความคำอธิบายเล็กน้อยและอนุญาตให้คุณย้ายจากโดเมนเว็บโฮสต์อื่น ๆ ด้วยการคลิกเพียงครั้งเดียวหลังจากเลือกโดเมนที่จะย้ายจาก ( หมายเหตุ : ตัวอย่างนี้แสดงว่าลงจากเซิร์ฟเวอร์ทดสอบ / สเตจ / สดไปจนถึงการพัฒนาในท้องถิ่น แต่คุณสามารถมั่นใจได้ว่าสามารถย้ายไปยังโดเมนใด ๆ ที่เกิดขึ้นได้ซึ่งหมายความว่าปลั๊กอินจะเหมาะสำหรับการใช้เว็บไซต์สดที่มีอยู่และทำให้สภาพแวดล้อมการพัฒนาท้องถิ่นทำงานได้อย่างรวดเร็ว! ):
หากยังไม่ชัดเจน "การโยกย้าย " ในบริบทนี้หมายถึงการปรับปรุงการอ้างอิงทั้งหมดในฐานข้อมูลปัจจุบันให้เหมาะสมกับเว็บโฮสต์ที่กำหนดในปัจจุบัน (และ " ปัจจุบัน " ถูกดมกลิ่นโดยการตรวจสอบ$_SERVER['SERVER_NAME']
)
สิ่งที่ยอดเยี่ยมเกี่ยวกับปลั๊กอินคือใช้การย้ายข้อมูลพื้นฐานบางอย่าง แต่ทุกคนสามารถเชื่อมโยงและดำเนินการย้ายข้อมูลได้ ตัวอย่างเช่นหากคุณเพิ่มปลั๊กอินแกลเลอรี่ที่เก็บเส้นทางแบบเต็มไปยังรูปภาพในฐานข้อมูลคุณสามารถขอให้migrate_webhosts
ดำเนินการซึ่งจะส่งผ่าน " จาก " เว็บโฮสต์และ " ถึง " เว็บโฮสต์แต่ละรายการเป็นอาร์เรย์ของข้อมูลเมตาและคุณจะได้รับอนุญาต เพื่อดำเนินการสิ่งที่คุณต้องทำในฐานข้อมูลโดยใช้ SQL หรือฟังก์ชั่น WordPress API ที่ใช้บังคับเพื่อทำการย้ายข้อมูล ใช่พวกเราคนใดสามารถทำได้โดยไม่ต้องใช้ปลั๊กอิน แต่ไม่มีปลั๊กอินฉันพบว่าการเขียนรหัสทั้งหมดที่จำเป็นต้องใช้ความพยายามมากกว่าที่มันคุ้มค่า ด้วยปลั๊กอินมันง่ายกว่าที่จะเขียน hooks เล็ก ๆ เหล่านี้และเอาไปใช้ด้วย
คุณอาจพบว่าการโยกย้ายของฉันล้มเหลวในกรณีที่ฉันไม่ได้ทดสอบและบางทีคุณสามารถช่วยฉันปรับปรุงปลั๊กอินได้หรือไม่ ทุกคนที่ต้องการสามารถส่งอีเมลฉันผ่านบัญชี Gmail ของฉัน (นามแฝงของฉันคือ "mikeschinkel")
นอกจากนี้ปลั๊กอินถูกออกแบบมาเพื่อรับข้อมูลเมตาโฮสต์ใช้กำหนดนอกเหนือไปจากคนที่ตระหนักเช่นdatabase
, user
, password
, host
, domain
ฯลฯ ตัวอย่างที่สมบูรณ์แบบอาจจะเป็นgooglemaps_apikey
ที่ที่คุณสามารถจัดเก็บคีย์ API ที่แตกต่างกันสำหรับแต่ละโดเมนว่า Google แผนที่ของคุณต้องการปลั๊กอิน วิธีการทำงานที่ถูกต้อง (ในหมู่คุณที่ใช้ปลั๊กอิน Google Maps ยังไม่ได้ปรับใช้แอพกับเซิร์ฟเวอร์ที่ใช้งานอยู่และลืมที่จะเปลี่ยนรหัสเป็นรหัส API ที่ถูกต้องหรือไม่มาเลยบอกตรงๆ ... :) ด้วยปลั๊กอินนี้googlemaps_apikey
องค์ประกอบใน register_webhost คุณ () อาร์เรย์และกำหนดเองขนาดเล็กmigrate_webhosts
เบ็ดคุณมีประสิทธิภาพสามารถกำจัดที่เป็นกังวล!
เกี่ยวกับมัน ฉันเปิดตัวปลั๊กอินนี้ที่นี่ในการแลกเปลี่ยนผู้ตอบของ WordPress เพราะคำถามของ @ Insanity5902 ทริกเกอร์มัน แจ้งให้เราทราบว่ามีประโยชน์หรือไม่หากเหมาะสมหรือผ่านทางอีเมล
ป.ล. ถ้าคุณตัดสินใจที่จะใช้สิ่งนี้โปรดจำไว้ว่ามันคืออัลฟ่า / เบต้าและนั่นหมายความว่ามันจะเปลี่ยนไปดังนั้นเตรียมพร้อมสำหรับการผ่าตัดเล็กน้อยหากคุณต้องการใช้ตอนนี้แล้วใช้เวอร์ชันที่เผยแพร่เมื่อถูกตีด้วยมือจำนวนมาก
PPS เป้าหมายของฉันคืออะไร ฉันชอบที่จะเห็นการโยกย้ายนี้เป็นแกน WordPress เพื่อให้ทุกคนสามารถเข้าถึงได้ แต่ก่อนหน้านั้นผู้คนจำนวนมากก็ต้องสนใจที่จะใช้มันเพื่อให้แน่ใจว่าจริง ๆ แล้วมันจะแก้ปัญหาได้มากกว่านั้นมันอาจจะสร้าง ดังนั้นถ้าคุณชอบความคิดจากนั้นก็ใช้มันและช่วยให้ฉันได้รับแรงผลักดันจากมันสำหรับการรวมความหวังไว้ในที่สุดในคอร์ WordPress
เมื่อเป็นไปได้ฉันจะตั้งค่าWP_HOME
และในWP_SITEURL
wp-config.php
ซึ่งรวมกับดัมพ์และอิมพอร์ตฐานข้อมูลเป็นโซลูชันที่ง่ายที่สุดที่ฉันคุ้นเคย
http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php
แฮ็คที่ฉันชอบ; เพิ่มการตั้งค่าของคุณ/etc/hosts
เพื่อให้โดเมนการผลิตชี้ไปที่กล่องการพัฒนาของคุณบนเครื่องของคุณ ในการปรับใช้กับการผลิตให้คุณซิงค์ไฟล์ทั้งหมดและส่งฐานข้อมูล
ความเสี่ยงของกลยุทธ์นี้ชัดเจน คุณอาจสร้างความสับสนให้กับสภาพแวดล้อมการพัฒนาของคุณกับสภาพแวดล้อมการผลิตของคุณ
มันยังคงง่ายต่อการแก้ไข
ฉันต้องการสิ่งที่คล้ายกันเมื่อฉันย้ายไปยัง WP ไม่กี่เดือนหลังดังนั้นฉันจึงเขียนสคริปต์เชลล์ที่ค่อนข้างง่ายที่ใช้ rsync และ mysqldump บน ssh:
http://snarfed.org/sync_wordpress
มันไม่ซับซ้อนหรือใช้เว็บ แต่ฉันมีความสุขกับมัน
WP Engineเป็นบริการใหม่ที่มี "One-Click Staging":
WPEngine มีคุณสมบัติพิเศษที่เรียกว่า“ การจัดเตรียม” ต่อไปนี้เป็นวิธีการใช้งาน: ก่อนที่คุณจะทำการเปลี่ยนแปลงที่น่ากลัวในบล็อกของคุณให้คลิกปุ่ม“ ถ่ายภาพ” เราทำสำเนาบล็อกของคุณให้เสร็จสมบูรณ์และตั้งในพื้นที่ที่ปลอดภัยแยกต่างหาก คุณสามารถเล่นอะไรก็ได้ที่คุณต้องการ ไม่มีอะไรอยู่ เมื่อคุณพร้อมที่จะทำให้มันสดคุณสัมผัสกับเว็บไซต์หลักของคุณ
ดูเหมือนจะเป็นวิธีที่ง่ายมากในการย้ายจากการพัฒนาไปสู่การผลิตอย่างรวดเร็วโดยเฉพาะกับไซต์สดที่มีอยู่แล้ว
ปลั๊กอินโรเนียว: นี่คือปลั๊กอินที่ฉันทำงานอยู่ ปัจจุบันอยู่ในรุ่นเบต้า แต่ทำงานได้สำเร็จสำหรับไซต์ส่วนใหญ่ ตอนนี้มันเป็นเป้าหมายของการติดตั้ง WordPress ที่เล็กลง http://wordpress.org/extend/plugins/duplicator/
ทรัพยากร: แหล่งข้อมูลเพิ่มเติมสำหรับปลั๊กอินสามารถพบได้ที่นี่: http://lifeinthegrid.com/duplicator/
ชุมชน: โปรดแจ้งให้เราทราบเกี่ยวกับความสำเร็จของคุณหรือปัญหาใด ๆ ที่คุณอาจพบ! ในความพยายามที่จะจัดการหัวข้อต่างๆได้ง่ายขึ้นโปรดโพสต์ปัญหาไปยังฟอรัมปลั๊กอิน WordPress.org กรุณาอย่าโพสต์ข้อมูลการบันทึกจากปลั๊กอินลงในฟอรั่มออนไลน์ ข้อมูลการบันทึกสามารถส่งไปยังเว็บไซต์สนับสนุนของเรา
ฉันเป็นบุคคลที่แก้ไขปัญหานี้กับโครงการของฉันบน Github เรียกAutopress ฉันยังไม่มีทางออกที่สมบูรณ์แบบ แต่ฉันใกล้ชิดยิ่งขึ้นโดยเฉพาะกับปลั๊กอิน wpstage จาก wpengine folks
สิ่งนี้ดูมีแนวโน้ม เรากำลังทำงานกับสคริปต์บางตัวเพื่อจัดการกับการย้ายข้อมูลบางส่วน wp-options ตัวอย่างเช่นการเปลี่ยนพา ธ ใน db ซึ่งเป็นการคัดลอกบนสื่อ
ปัญหาที่ฉันมีคือเว็บไซต์สดยังคงเติบโตในขณะที่อื่น ๆ ในการพัฒนา หนึ่งไซต์ที่เราทำงานมี 20 โพสต์ต่อวันและมี 3,000 ความคิดเห็นต่อวัน นั่นเป็นข้อมูลที่มากเกินกว่าที่จะเคลื่อนย้ายด้วย phpmyadmin หรือผ่านบรรทัดคำสั่ง นอกจากนี้การย้ายข้อมูลไปรอบ ๆ มักทำให้เกิดปัญหา UTF ด้วยเหตุผลบางประการ
นอกจากนี้ตอนนี้ดูเหมือนว่าตัวเลือกเมนูจะถูกเก็บไว้ในฐานข้อมูลฉันมีมากขึ้นที่จะจัดการกับ
ฉันตรวจสอบรหัสทั้งหมดของฉันลงใน SVN และปรับใช้รหัสผ่าน FTP จากเซิร์ฟเวอร์ (Beanstalk) สิ่งนี้ไม่ได้ทำการเปลี่ยนแปลงกับฐานข้อมูลสำหรับฉันแม้ว่าจะเปิดใช้งานปลั๊กอินใหม่หรือไม่
แผนของฉันตอนนี้คือการสร้างไฟล์รายการในขณะที่ฉันกำลังพัฒนาเพื่อทำการเปลี่ยนแปลงทั้งหมดของฉันไปยังไซต์สด
ตัวอย่างเช่นไฟล์จะมีบรรทัดที่มนุษย์อ่านได้
มันจะรวมถึงปลั๊กอินเพื่อเปิดใช้งานตัวเลือก wp ที่จะย้ายไปภาพที่จะย้ายหน้าเพื่อย้าย จากนั้นปลั๊กอินของฉันจะตรวจจับไฟล์รายการและทำการเปลี่ยนแปลงทั้งหมดไปยังไซต์การแสดงละคร
เมื่อฉันทดสอบและมั่นใจว่าฉันได้ทุกอย่างฉันก็มั่นใจได้ว่ามันจะได้ผลจริง
ปลั๊กอินนี้ยังคงเป็นความคิด แต่ฉันมีรหัสที่เขียน
นอกจากนี้หากคุณต้องการเปลี่ยนแปลงเฉพาะ URL ในฐานข้อมูลของคุณคุณสามารถใช้ SQL ต่อไปนี้
เพียงแทนที่$old$
ด้วยโดเมนเก่าและ$new$
ใหม่
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$') ;
โครงการ Google Summer of Code สองโครงการที่มีเป้าหมายคล้ายกัน:
ฉันใช้คำสั่งส่งออกของ subversion เพื่อติดตั้งไฟล์ WordPress (http://core.svn.wordpress.org/tags//) รวมถึงปลั๊กอินทั้งหมดในที่เก็บ (http://plugins.svn.wordpress.org//tags) //) จากนั้นเพียงแค่ซิปธีมและปลั๊กอินที่กำหนดเองและติดตั้งตามปกติ เมื่อทั้งหมดนั้นเริ่มต้นและทำงานโดยไม่มีเนื้อหาฉันจะส่งออกฐานข้อมูลทดสอบและทำการค้นหา / แทนที่ URL และ filepath (เก็บไว้สำหรับสื่อ) และนำเข้าสู่ฐานข้อมูลเปล่าแล้วเพียงแค่เปลี่ยนข้อมูลฐานข้อมูลใน wp-config .php โดยทั่วไปใช้เวลาประมาณ 10 - 20 นาที
โดยปกติฉันเข้าสู่ phpMyadmin อัปโหลดฐานข้อมูลและแก้ไขเนื้อหาของ wp_options> siteurl และ wp_options> home เป็นโดเมนที่คาดหวัง หากคุณต้องการอัปเดต URL ภายในเนื้อหาโพสต์และหน้าของคุณคุณสามารถทำการค้นหา / แทนที่ URL และเส้นทางสื่อ / อัพโหลดในไฟล์. SQL ก่อนที่จะอัปโหลด มันเป็นงานที่รวดเร็ว
ในขณะที่ไม่มีปัญหาการแก้ปัญหาที่ดีที่นี่ แต่ด้วยจิตวิญญาณของการแบ่งปันฉันคิดว่าฉันจะเพิ่มสคริปต์การปรับใช้ bash ของฉันลงในกอง: https://github.com/jplew/SyncDB
SyncDB เป็นทุบตีปรับใช้สคริปต์ตั้งใจที่จะนำความน่าเบื่อออกจากการประสานรุ่นท้องถิ่นและระยะไกลของเว็บไซต์ Wordpress จะช่วยให้นักพัฒนาที่ทำงานในสภาพแวดล้อมท้องถิ่น (เช่น MAMP) สามารถเปลี่ยน "push" หรือ "pull" อย่างรวดเร็วไปยังหรือจากเซิร์ฟเวอร์ที่ใช้งานจริงด้วยคำสั่งเทอร์มินัลเดียว
สคริปต์นี้จะทำงานได้ดีกับมาร์กจาควิ ธ ของ WP-โครงกระดูกและสายรัดmysqldump
, git
และrsync
การประสานของคุณทั้งเว็บไซต์ฐานข้อมูลรหัสและสื่อในสองขั้นตอนง่ายๆ:
./syncdb
git push hub master
ผมเคยใช้http://wordpress.org/plugins/wp-clone-by-wp-academy/ มันใช้งานได้ดี!
เพียง 3 ขั้นตอน:
มันจะปรับ URL ทั้งหมดโดยอัตโนมัติ - รวมถึงการแทนที่สตริงแบบอนุกรม - ดังนั้นจึงไม่มีความเสี่ยงในการสูญเสียการกำหนดค่าวิดเจ็ต ฯลฯ
ปัญหาเดียวที่ฉันมีอยู่กับบางเว็บไซต์ที่มีฐานข้อมูลขนาดใหญ่ (~ 300MB) ซึ่งทำให้หมดเวลาการทำงานของสคริปต์ PHP ในระหว่างการนำเข้าการสำรองข้อมูลไซต์
ในปี 2560 ที่นี่เป็นสองวิธีที่ดีที่สุดที่ฉันพบเพื่อจัดการการถ่ายโอนฐานข้อมูล WordPress จากการพัฒนาไปสู่การผลิต
https://wordpress.org/plugins/wp-migrate-db/
ปลั๊กอิน WordPress เหล่านี้ให้คุณดันดึงและซิงค์ตารางฐานข้อมูลระหว่างการติดตั้ง WordPress สิ่งนี้ดีกว่าการค้นหา / แทนที่ด้วยเหตุผลหลายประการเพราะ:
ฉันเป็นแฟนตัวยงของการได้รับเงินสำหรับงานที่ทำดังนั้นฉันขอแนะนำให้คุณสนับสนุนนายแบรด Touesnard และซื้อสำเนาใบอนุญาตของจริง WP Sync DB เป็นข้อมูลซ้ำและสนับสนุนเสมอ ด้วยปลั๊กอินนี้กระบวนการนี้ง่ายมาก:
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
เครื่องมือฟรีนี้ไม่ได้เป็นปลั๊กอิน แต่ติดตั้งในไดเรกทอรีรากของการติดตั้งการผลิต WordPress ของคุณ สิ่งนี้ไม่ดีเท่า WP Migrate DB Pro เพราะมันต้องมีขั้นตอนแบบแมนนวล แต่ก็เป็นตัวเลือกที่ยอดเยี่ยมที่ใช้งานได้อย่างสม่ำเสมอ เมื่อใช้วิธีนี้กระบวนการจะมีลักษณะดังนี้:
คุณสามารถใช้วิธีที่รวดเร็วกว่า แต่มันเกี่ยวข้องกับการหยุดทำงานของเว็บไซต์ผลิตของคุณซึ่งฉันคิดว่าไม่เป็นที่ยอมรับ นั่นเป็นเหตุผลที่เราเรียกมันว่าการผลิตใช่มั้ย
ตั้งแต่ฉันเรียกใช้ไซต์ของฉันใน IIS (ฉันเรียกใช้ asp.net ดังนั้นฉันต้องการ windows) ฉันใช้ WebPI จาก Msft เพื่อติดตั้งอินสแตนซ์ใหม่จากนั้นฉันก็คัดลอกแม่แบบและใช้การนำเข้า / ส่งออกเพื่อถ่ายโอนข้อมูล
มันไม่สมบูรณ์แบบ แต่ทุกอย่างใช้เวลาน้อยกว่าหนึ่งชั่วโมง
เห็นได้ชัดว่าเป็นเรื่องดีที่มีวิธีแก้ปัญหาแบบคลิกเดียว แต่นี่คือสิ่งที่ฉันคิดว่าง่ายที่สุดสำหรับฉัน
อีกวิธีการชำระเงิน: กรอบงานชุดรูปแบบ Xtreme One เปิดตัวรุ่น 1.2พร้อมการสำรองข้อมูล Xtremeซึ่งช่วยให้คุณ"ส่งออกหรือนำเข้าการตั้งค่าของชุดรูปแบบเลย์เอาต์หรือวิดเจ็ตของคุณด้วยการตั้งค่า / เนื้อหาทั้งหมดเป็นไฟล์ XML"
ผู้ร่วมงานพบสิ่งนี้ แนวคิดที่น่าสนใจแม้ว่ามันจะไม่ทำงานข้ามเซิร์ฟเวอร์ แต่ดูเหมือนว่า ฉันยังคงสำรวจมันอยู่ แต่ดูเหมือนว่ามันจะทำงานได้ดีสำหรับอินสแตนซ์ที่จัดเตรียม
สิ่งนี้อาจไม่ได้เกิดขึ้นเมื่อคุณถามคำถาม แต่ฉันได้ใช้บริการที่ชื่อว่า Blogvault สองสามเดือนและได้ทำสิ่งนี้อย่างไร้ที่ติ ฉันอาจทำการย้ายข้อมูลมากกว่า 50 ครั้ง (ข้ามโดเมน, sub-domains และโฮสต์เว็บ) ไม่ใช่การผูกปมและไม่ต้องใช้เวลาเลย
มันเป็นบริการชำระเงิน (ต่อโดเมน / เดือน) แต่ไม่มาก
RAMPเป็นปลั๊กอินการปรับใช้เนื้อหาใหม่จาก Crowd Favourite และดูเรียบเนียนจริงๆ อย่างไรก็ตามมันคือ $ 250 ดังนั้นฉันยังไม่ได้ลองเลย แต่อาจจ่ายให้ตัวเองในเวลาที่บันทึกไว้ดังนั้นฉันจึงพิจารณา
ประโยชน์ที่ยิ่งใหญ่ที่มีมากกว่าวิธีอื่น ๆ ที่กล่าวถึงคือสามารถผสานโพสต์ความคิดเห็นและอื่น ๆ ได้อย่างชาญฉลาดมันไม่เพียงแค่นำเข้า mysqldump มันเป็นเหมือนการควบคุมแหล่งข้อมูลสำหรับฐานข้อมูล ตัวอย่างเช่นเมื่อปรับใช้โพสต์โพสต์จะปรับใช้แท็กสำหรับโพสต์นั้นหากยังไม่มีอยู่ในการผลิต
ให้ฉันให้หนึ่งในรายการโปรดของฉัน :-)
// 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 -------------------
{
... แล้วคุณก็ไปจากที่นั่น DB_NAME, DB_USER ... table_prefix ส่วนตัวฉันเปิด ALTERNATE_WP_CRON ในท้องถิ่น (เพื่อหลีกเลี่ยงคำเตือนที่น่ารำคาญ ), WP_DEBUG จากทั้งคู่ (ถ้าคุณไม่ใช่ผู้พัฒนา) หรือใช้ชีวิตแบบสดๆ (ถ้าคุณเป็น) อีกคนหนึ่งที่ini_set('display_errors', '0');
มีชีวิตอยู่ก็ทำได้ดีในที่สุด ดังกล่าวข้างต้น: WP_HOME และ WP_SITEURL ไปยัง url ท้องถิ่น / จริง
ที่สวยมากทุกคนไม่มีอะไรเหลือดังกล่าวข้างต้น WordPress คลาสสิก'นั่นคือทั้งหมดที่หยุดการแก้ไข! บรรทัด ...
The 192.168 ส่วนหนึ่งช่วยให้คุณทำการทดสอบในพื้นที่ (เช่นจากแผ่นอิเล็กโทรดหรือโทรศัพท์) ภายในเครือข่ายท้องถิ่นของคุณ)
$ GLOBALS ['is_local'] สามารถมีประโยชน์ในการพัฒนาชุดรูปแบบของคุณเช่นกันสำหรับการส่งออกการแก้ปัญหาพิเศษอื่น ๆ ...
WP_LOCAL_DEV
คงที่เพื่อให้ได้สิ่งที่คล้ายกัน
ฉันใช้ปลั๊กอิน backupbuddy มาระยะหนึ่งแล้ว มันช่วยให้คุณทำการสำรองฐานข้อมูลและไฟล์ทั้งหมดดาวน์โหลดเป็น zip หรือส่งโดยตรงไปยังเซิร์ฟเวอร์อื่นผ่าน FTP URL นี้จะค้นหาและแทนที่ให้คุณด้วย ฉันใช้เวลาประมาณ 5 นาทีกว่าจะผ่านกระบวนการทั้งหมด และเนื่องจากไฟล์ทั้งหมดถูกบีบอัดกระบวนการอัพโหลด / ดาวน์โหลดจึงเร็วกว่ามาก และไม่ฉันไม่ทำงานสำหรับพวกเขา แต่ปลั๊กอินนี้ทำให้กระบวนการทั้งหมดนี้ง่ายขึ้นมาก
เครื่องมือที่มีประโยชน์อีกอย่างสำหรับการจัดการการย้ายเซิร์ฟเวอร์สำหรับไซต์คือ WordPress CLI บทความนี้มีภาพรวมที่ดีของสิ่งที่สามารถทำได้ แต่เฉพาะส่วนสำหรับ "การค้นหาและแทนที่" มีประโยชน์สำหรับการค้นหาการอ้างอิงทั้งหมดไปยัง URL ไซต์เก่า / dev :
นี่เป็นวิธีที่ง่ายที่สุดที่เคยมีมา:
https://themes.artbees.net/docs/website-migration/
ใช้เวลาเพียงสองคลิก หนึ่งในการส่งออกหนึ่งที่จะนำเข้า
เป็นไปได้โดยใช้ปลั๊กอิน All in one Migration WP ลิงก์ด้านบนแสดงวิธีใช้งาน
หากคุณพยายามทำการซิงโครไนซ์อย่างต่อเนื่องฉันแนะนำให้ใช้ rsync พร้อมกับงาน cron แบบกำหนดเองเพื่อเขียน url หรือข้อมูลเฉพาะไซต์ใด ๆ
หลังจากที่มีการปฏิบัติตามคำตอบนี้ในขณะที่เราได้สร้างปลั๊กอินเล็ก ๆ ของตัวเอง - แต้วแล้วโยกย้าย เหตุผลที่:
WP_HOME
และWP_SITEURL
ตัวเลือกwp_options
URL ที่ตรงกันสองรายการซึ่งครอบคลุมเมื่อปลั๊กอิน / ธีมไม่สนใจสิ่งเหล่านี้ในความคิดของฉันวิธีที่ง่ายที่สุดที่ฉันติดตามคือการถ่ายโอนด้วยตนเอง .. เพียงแค่คัดลอกโฟลเดอร์ wp-content และไฟล์ wp-config.php ไปยังโฮสต์ใหม่ ส่งออกฐานข้อมูลจากโฮสต์เก่าและนำเข้าในฐานข้อมูลใหม่ของโฮสต์ใหม่ ..
ในฐานข้อมูลโฮสต์ใหม่ไปที่ตาราง wp-option และเปลี่ยน URL ไซต์และ URL บล็อกเป็นที่อยู่โฮสต์ใหม่จากโฮสต์เก่า ชอบจากhttp: // localhost / wpถึงhttp://example.com
ตอนนี้ในไฟล์ wp-config เพียงเปลี่ยนข้อมูลของฐานข้อมูลและผู้ใช้ด้วยข้อมูลโฮสต์ใหม่
ตอนนี้เข้าสู่ระบบ wp-admin ใหม่และไปที่การตั้งค่าและบันทึกความคิดเห็น
คุณทำเสร็จแล้ว ฉันคิดว่ามันง่ายโดยไม่ต้องใช้ปลั๊กอินใด ๆ
ฉันลองใช้ปลั๊กอินชนิดต่าง ๆ และทั้งหมดนี้มีปัญหาหลายอย่าง ..
ดังนั้นฉันชอบการถ่ายโอนด้วยตนเองแบบง่าย ๆ ซึ่งฉันคิดว่าง่ายกว่า