Wordpress Git Workflow ช่วยเหลือ


17

ฉันกำลังมองหาแนวคิดเวิร์กโฟลว์ที่มีความคล่องตัวสำหรับการทำงานกับ Wordpress

  1. ต้องการมีสภาพแวดล้อมคอมไพล์ของฉันบนเซิร์ฟเวอร์ของตัวเองภายในไม่ใช้ Github เพื่อจัดการ repos
  2. การสร้างโดเมนย่อยโดยอัตโนมัติตามการสร้างสาขา git (development.domain.com, ryan.development.domain.com) - อาจมีเชลล์สคริปต์ hook บางตัวที่เหมาะสำหรับสิ่งนี้
  3. Phing สคริปต์ PHP / Shell การจัดการการย้ายฐานข้อมูล (บางอย่างเช่นนี้http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) เพื่อจัดการการเปลี่ยนฐานข้อมูลแบบอนุกรมเมื่อมีการกด

การดำเนินการอาจจะเป็นอย่างนี้:

  1. รับรุ่น wordpress ล่าสุดในปัจจุบันและสาขาออกชื่อของสาขาได้รับรายการย่อย (branchdevelopment.domain.com)
  2. ส่งธีมที่คุณต้องการถ้ามี (ฉันต้องการทำ repo git ของตัวเองสำหรับเรื่องนี้เนื่องจากฉันใช้วิทยานิพนธ์ฉันต้องการให้มีการตั้งค่า git repo วิทยานิพนธ์เปล่าเพื่อคว้าจากภายในเซิร์ฟเวอร์ที่สร้างขึ้นแล้ว)
  3. ชำระเงินและทำการเปลี่ยนแปลงความคิดเห็นของลูกค้าเมื่อมีการผลักดันให้มีชีวิตสคริปต์ฐานข้อมูลจะเริ่มเปลี่ยนค่า URL ที่ต่อเนื่องกันโดยอัตโนมัติจาก localhost (หรือโดเมนย่อย) เป็น URL สด

เป็นไปได้ไหม ฉันได้ยินมาว่า Capistrano ก็ใช้งานได้ดีเช่นกัน แต่ไม่แน่ใจว่า Capistrano ทำงานอย่างไร

ฉันทำงานประมาณ 200 ไซต์บนเซิร์ฟเวอร์ของตัวเองและต้องการเริ่มนำไซต์เหล่านี้ไปใช้ในสภาพแวดล้อมเวิร์กโฟลว์คอมไพล์ที่แข็งแกร่งดังนั้นฉันสามารถปรับปรุงงานของฉันให้ดีขึ้นได้มากขึ้น ณ ตอนนี้ฉันมักจะดาวน์โหลดภาพของเว็บไซต์และทำงานในพื้นที่แล้วอัปโหลดการเปลี่ยนแปลงกลับไปที่เซิร์ฟเวอร์ นี่เป็นสิ่งที่น่าเบื่อหน่ายในยุคนี้

ใครบ้างมีวิธีแก้ปัญหาเกี่ยวกับกระบวนการทำงานประเภทนี้ / เคยทำงานกับสิ่งนี้มาก่อนหรือไม่? ถ้าใช่ทรัพยากร / คำตอบจะได้รับการชื่นชมอย่างมาก


3
ทำไมไม่ใช้ bitbucket เพราะพวกเขามี repos ไม่ จำกัด ฟรี
Brian Fegter

2
ค้นหาแทนที่มีรุ่น cli ถ้าคุณชำระเงิน gitub repo คุณสามารถใช้แม้ว่าฉันไม่สามารถแสดงความคิดเห็นเกี่ยวกับวิธีการที่คุณได้รับ URL และพารามิเตอร์ต่างๆที่จะผ่านเข้าไป
Tom J Nowell

คำตอบ:


6

ตอบคำถามทั่วไป

Nr.1 ต้องการมีสภาพแวดล้อมคอมไพล์ของฉันบนเซิร์ฟเวอร์ของตัวเองภายในไม่ใช้ Github เพื่อจัดการ repos

สิ่งแรกที่ผมจะทำคือการตรวจสอบนักแต่งเพลงและวิธีการทำงานกับ WordPressซึ่งเป็นโครงการโดยอันเดรย์ "@Rarst" Savchenko

Nr.2 การสร้างโดเมนย่อยโดยอัตโนมัติตามการสร้างสาขา git ( development.example.com, ryan.development.example.com) - อาจเป็นเพราะเชลล์สคริปต์ hook บางตัวอาจเหมาะอย่างยิ่งสำหรับสิ่งนี้

นี่เป็นสิ่งที่เกินขอบเขตสำหรับไซต์นี้ ขอความช่วยเหลือจากStackOverflowหรือสอบถามที่ hoster ของคุณ โฮสเตอร์บางตัวไม่อนุญาตให้แก้ไขรายการเหล่านี้ด้วยตนเอง

Nr.3 Phing สคริปต์ PHP / Shell การจัดการการย้ายฐานข้อมูล (บางอย่างเช่นนี้http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) เพื่อจัดการการเปลี่ยนฐานข้อมูลแบบอนุกรมเมื่อมีการกด

ฉันจะตั้งค่าการติดตั้งแบบหลายไซต์ / เครือข่าย ทำให้สามารถจัดการตารางทั้งหมดได้อย่างง่ายดายเก็บผู้ใช้ไว้ในที่ส่วนกลาง ฯลฯ

WP Gear - โครงการโดยRobert "@Wyck" Ellison - มีรายการสคริปต์บิลด์สำรอง รวมถึงWordPhing ที่เขียนขึ้นด้วยตัวเอง @TomJNowells /Interconnect.it สคริปต์ไม่ได้อยู่ในรายการนั้น

ตอบคำถามการดำเนินการ

Nr 1.รับรุ่นล่าสุดของ wordpress ล่าสุดและสาขาออกชื่อของสาขาได้รับรายการย่อย (branchdevelopment.domain.com)

ไม่แน่ใจว่าเพราะเหตุใดจึงต้องการทำเช่นนี้: โดเมนย่อยสำหรับแต่ละสาขา เมื่อคุณมองไปที่ซิงค์พื้นที่เก็บข้อมูล WordPress GitHubและรายชื่อสาขาX.Y-branchแล้วคุณจะเห็นว่าทุกสาขาเป็นชื่อ 3.6-branchดังนั้นโดเมนย่อยของคุณจะได้รับการตั้งชื่อตามชื่อเช่น ฉันไม่แน่ใจว่าโดเมนย่อยได้รับอนุญาตให้เริ่มต้นด้วยหลัก (ควรเป็น แต่ขอให้ผู้อุปถัมภ์ของคุณ) แล้วมีปัญหาว่าคุณจะได้รับชื่อโดเมนย่อย6-branchซึ่งมีชื่อโดเมนย่อยและอีกคนหนึ่งชื่อ3 2และเดาว่าการจับคู่ 2- และ 3 เวอร์ชันย่อยในโดเมนย่อยไม่ใช่สิ่งที่คุณต้องการทำ

กล่าวโดยย่อ: เพียงแค่checkout 3.6-branchคุณจำเป็นต้องเปลี่ยนสาขา

Nr.2 ส่งธีมที่คุณต้องการถ้ามี (ฉันต้องการทำ repo git ของตัวเองสำหรับเรื่องนี้เนื่องจากฉันใช้วิทยานิพนธ์ฉันต้องการให้มีการตั้งค่า git repo วิทยานิพนธ์เปล่าเพื่อคว้าจากภายในเซิร์ฟเวอร์ที่สร้างขึ้นแล้ว)

โทมัส "@toscho" Scholzได้เขียนปลั๊กอินที่ดีซึ่งทำให้เราสามารถใช้โดเมนย่อยเพื่อจัดการกับธีมนอกไดเรกทอรี WordPress คุณสามารถค้นหาได้ในคำตอบนี้เช่นเดียวกับในนี้ แม้แต่การอัพเดตอัตโนมัติจะใช้งานได้กับธีมตั้งแต่ WP 3.6

คุณสามารถทำเช่นเดียวกันกับ MU-Plugins และ Plugins โดยเพียงแค่ตั้งค่าคงที่ต่อไปนี้ในwp-config.phpไฟล์ของคุณ:

define( 'WP_PLUGIN_DIR',   'path/to/your/plugins.dev/folder/plugins' );
define( 'WP_PLUGIN_URL',   'https://plugins.dev/plugins' );
define( 'WPMU_PLUGIN_DIR', 'path/to/your/plugins.dev/folder/mu-plugins' );
define( 'WPMU_PLUGIN_URL', 'https://plugins.dev/mu-plugins' );

ตอนนี้เพียงแค่วางปลั๊กอินและธีมทั้งหมดของคุณภายใต้การควบคุมเวอร์ชันและส่งไปยังเซิร์ฟเวอร์ของคุณ คุณสามารถทำให้พร้อมใช้งานทั้งหมดได้อย่างง่ายดายโดยใช้ mu-plugins หรือปลั๊กอินเริ่มต้นที่เปิดใช้งานเครือข่าย

การตรวจสอบ Nr.3และทำการเปลี่ยนแปลงความคิดเห็นของลูกค้าเมื่อถูกพุชสคริปต์ฐานข้อมูลจะเริ่มเปลี่ยนค่า URL ที่ต่อเนื่องกันโดยอัตโนมัติจาก localhost (หรือโดเมนย่อย) เป็น URL สด

หาก Toms สคริปต์ / ปลั๊กอินไม่ช่วยให้คุณเพื่อให้ห่างไกลจากนั้นก็จะบอกว่าเขายอมรับการร้องขอดึง GitHub


2
ใน 2 เดือนที่ฉันเข้าร่วมเว็บไซต์นี้ฉันเข้าใจว่า"ฉันตั้งค่าการติดตั้งหลายไซต์ / เครือข่าย"เป็นประโยคที่คุณโปรดปราน :)
gmazzap

@GM hehe :) ใช่มันเป็น โดยทั่วไปฉันไม่เข้าใจว่าทำไมเรายังมีเว็บไซต์เดียว ด้วยการติดตั้งเครือข่ายโดเมน / ไซต์หลักของคุณจะเหมือนกันทุกประการกับการติดตั้งไซต์เดียวของคุณ คุณเพิ่งได้รับตัวเลือกและความเป็นไปได้มากมาย
ไกเซอร์

พูดโดยทั่วไปฉันเห็นด้วย เหตุผลที่มีการติดตั้งเว็บไซต์เดียวคือ: 1)การเข้าถึงเซิร์ฟเวอร์ที่ จำกัด2)ส่วนใหญ่ของรหัสที่มีอยู่ (ปลั๊กอิน, ธีม, ตัวอย่าง) ทำงานไม่ถูกต้องหรือมีปัญหากับการติดตั้งงานใหม่ ดังนั้นหากคุณไม่ต้องการ / ไม่สามารถเขียนโค้ดด้วยตัวเองและคุณไม่จำเป็นต้องใช้เครือข่าย inslall ให้ใช้การติดตั้งเพียงครั้งเดียว
gmazzap

1
หาก Toms สคริปต์ไม่ทำงานมีคุณสมบัติเต็มรูปแบบต่อเนื่องใน PHP parser userland ใช้ได้เรียกว่าต่อเนื่อง
hakre

@hakre เช่นเคย: โปรดแก้ไขคำถามของฉัน :)
kaiser

3

ไม่มีเวลาที่จะเขียนคำตอบของฟีเจอร์เต็มรูปแบบ (ฉันรู้ว่าคนอ่อนแอ) แต่ก็น่าจะมีค่าพอที่จะแชร์ต่อไป (ฉันอาจแก้ไขสิ่งนี้ได้เพราะฉันวางแผนที่จะโพสต์บล็อกด้วย)

  • ฉันกำลังโคลนนิ่งWordpress จาก Github (คุณสามารถทำได้สำหรับต้นไม้ต้นกำเนิดจากที่นี่: tierra / wordpress )

  • จากนั้นฉันก็ใช้มันผ่านทรีทรีผสานในเว็บไซต์ของฉันเอง repo (ฉันยังทำงานมากกว่าข้อบกพร่องในระบบคอมไพล์ แต่มันเป็นทางออกที่นี่: -X subtree = ... )

นั่นหมายความว่าคุณสามารถมีการตั้งค่า WP แบบอิง trunk / version-branch ซึ่งคุณสามารถแฮ็คได้อย่างสมบูรณ์ ธีมและปลั๊กอิน

เนื่องจากนี่คือหนึ่งที่เก็บข้อมูลอิสระ (โลคัล) คุณสามารถส่งผ่าน ssh ไปยังที่เก็บอื่นเช่นหนึ่ง:

  • ที่อยู่บนรีโมตโฮสต์ที่ไซต์ควรถูกปรับใช้ที่ (bare repo)
  • นั่นมี hooks เพื่อสร้างที่เก็บอื่นบนโฮสต์นั้นจริง ๆ แล้วผสานในการเปลี่ยนแปลงที่คุณเพิ่งผลัก

นี่คือที่ที่ระบุไว้ในเว็บที่มุ่งเน้น Git เวิร์กโฟลว์ (พฤศจิกายน 2008; โดยโจ Maller)

หากคุณมีตัวสลับการกำหนดค่าที่เลือกรูปธรรมwp-config.phpตามระบบที่ใช้อยู่คุณสามารถกำหนดค่าโฮสต์ทั้งหมดได้จากส่วนกลาง (การพัฒนาการแสดงสดเพื่อน) ... ภายใน repo

การเปลี่ยนแปลงขั้นต้นใน WP คุณเพียงดึงและรวมในแผนผังย่อย

ปลั๊กอินที่คุณเพิ่งอัปเดตและกระทำ

$ git push remoteการปรับใช้เป็นที่เรียบง่าย

เรียกใช้การสำรองข้อมูลรายวันบนรีโมตโฮสต์สำหรับ git repos ฐานข้อมูลและไฟล์ที่อัปโหลดซึ่งมีราคาถูกเป็นมิตรกับนักพัฒนาและยืดหยุ่น สิ่งนี้ทำงานได้ดีสำหรับการตั้งค่าแบบผู้พัฒนาเดี่ยวและแบบทีมขนาดเล็กเพราะทุกคนสามารถชำระเงินได้จากรีโมทไร้สาย


มีข้อแม้อยู่บ้าง:


ขณะนี้มีรายการตรวจสอบและการตั้งค่าตามที่อธิบายไว้ข้างต้น:

1. ต้องการให้มีสภาพแวดล้อม git ของฉันบนเซิร์ฟเวอร์ของฉันภายในไม่ใช้ Github เพื่อจัดการ repos

Github จะจัดการ repos อัปสตรีมที่นี่ (Wordpress) ไม่ใช่ของคุณเอง

2. การสร้างโดเมนย่อยโดยอัตโนมัติตามการสร้างสาขา git (development.domain.com, ryan.development.domain.com) - อาจมีเชลล์สคริปต์ hook บางตัวที่เหมาะสำหรับสิ่งนี้

การตั้งค่าตามที่อธิบายไว้เป็นวิธีการแยกส่วนที่มีหนึ่ง repo ต่อไซต์ มันสามารถจัดการโฮสต์การพัฒนาได้มากเท่าที่คุณต้องการมันอาจทำงานได้ดีกับการติดตั้งแบบหลายไซต์เพื่อจัดการหลายโดเมน แต่มันจะนับเป็นการตั้งค่า wordpress เดียวในแนวทางนี้

3. Phing สคริปต์ PHP / Shell การจัดการการย้ายฐานข้อมูล (บางอย่างเช่นhttp://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) เพื่อจัดการการเปลี่ยนฐานข้อมูลแบบอนุกรมเมื่อกด

ไม่จำเป็นต้องใช้ที่นี่เนื่องจากมีรหัสเท่านั้นที่อยู่ภายใต้การควบคุมเวอร์ชันฐานข้อมูลมีความเป็นอิสระระหว่างการพัฒนา (การจัดเตรียม) และการผลิตตามที่ควรจะเป็น

คุณอาจกำลังมองหาสคริปต์การติดตั้งที่จะทำการย้ายโดเมนให้ถูกต้อง แต่แม้จะมีรหัสที่ดีกว่า (มีให้) จัดการกับการค้นหาข้อมูลแบบอนุกรมและแทนที่ในการตั้งค่านี้ที่นี่ปกติแล้วคุณไม่จำเป็นต้องผลักดันการเปลี่ยนแปลง สำหรับกรณีทดสอบคุณสามารถสร้างเนื้อหาในฐานข้อมูลการพัฒนาได้อย่างรวดเร็วซึ่งเป็นปัญหาที่เล็กที่สุด (จากประสบการณ์จริงของฉันคุณอาจแตกต่างกัน แต่ฉันขอแนะนำให้เก็บหัวข้อที่เกี่ยวข้องกับการย้ายฐานข้อมูลตามคำถามของมัน เป็นเจ้าของที่นี่บนเว็บไซต์ - แต่โปรดถามพวกเขา)

ฉันทำงานประมาณ 200 ไซต์บนเซิร์ฟเวอร์ของฉันเองและต้องการเริ่มนำไซต์เหล่านี้ไปใช้ในสภาพแวดล้อมของเวิร์กโฟลว์คอมไพล์ที่แข็งแกร่งดังนั้นฉันจึงสามารถปรับปรุงงานของฉันให้ดียิ่งขึ้น

ฉันไม่สามารถจินตนาการได้ว่าเว็บไซต์เหล่านั้นจะกลายเป็นอย่างไรภายใต้สภาพแวดล้อมเวิร์กโฟลว์คอมไพล์สตริง บางทีสคริปต์การกำหนดค่าและข้อมูลการกำหนดค่าที่คุณจัดการที่นี่จะถูกเก็บไว้ภายใต้การควบคุมเวอร์ชัน git นั่นอาจเป็นเหตุผล ฉันคิดว่ามันไม่สมเหตุสมผลเลยที่จะเก็บเว็บไซต์ทั้งหมดไว้ใน repo คอมไพล์เดียว บางทีอาจไม่ได้เป็นหนึ่งในนั้นเพราะสิ่งที่ฉันระบุไว้ด้านบนมีไว้สำหรับไซต์ที่คุณพัฒนา (รวมถึงรหัส core WP) ไม่ใช่เฉพาะสำหรับงานติดตั้ง ดังนั้นก่อนอื่นคุณต้องสร้างแผนที่เล็ก ๆ น้อย ๆ ของ 200 เว็บไซต์เหล่านั้นและวิธีที่พวกเขามีปฏิสัมพันธ์กันและสิ่งที่แพคเกจ (WP core, ปลั๊กอิน, ธีม) เว็บไซต์เหล่านั้นประกอบด้วย สิ่งแรกคือการสร้างสเปรดชีต / เมทริกซ์และวางไซต์ทั้งหมดไว้

จากนั้นคุณสามารถบันทึกเป็น CSV วางไว้ภายใต้การควบคุมเวอร์ชันและทำให้สคริปต์การปรับใช้ทำงานตามไฟล์นั้น

และถ้าฉันได้เรียนรู้บางอย่างเกี่ยวกับงานอัตโนมัติ: ทำตามปรัชญาของ Unix ใช้เครื่องมือที่มีอยู่แล้วและใช้งานได้ดี (ควรใช้เวลาอ่านครึ่งวันเกี่ยวกับคำสั่งบางคำสั่งแล้วพยายามค้นหาทางเลือกอื่นเพราะงานส่วนใหญ่ปัญหาได้รับแล้ว แก้ไขแล้ว) และเน้นเครื่องมือบรรทัดคำสั่ง พวกมันแข็งแกร่งที่สุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.