Wordpress Git Workflow Help


17

Tôi đang tìm kiếm một ý tưởng quy trình công việc hợp lý mạnh mẽ để làm việc với Wordpress.

  1. Muốn có môi trường git của tôi trên máy chủ của riêng tôi, không sử dụng Github để xử lý repos.
  2. Tự động tạo các tên miền phụ khi tạo nhánh git (Development.domain.com, ryan.development.domain.com) - Có lẽ một số hook script shell sẽ là lý tưởng cho việc này.
  3. Phing PHP / Shell script Xử lý di chuyển db (đại loại như thế này http://interconnectit.com/products/search-and-replace-for-wordpress-database/ ) để xử lý thay thế cơ sở dữ liệu tuần tự khi đẩy

Hoạt động có thể sẽ đi một cái gì đó như thế này:

  1. lấy phiên bản wordpress mới nhất hiện tại và phân nhánh nó ra, tên của chi nhánh sẽ có một mục nhập tên miền phụ (Branchdevelopment.domain.com)
  2. mô tả chủ đề mà bạn mong muốn nếu có
  3. kiểm tra và thực hiện các thay đổi, đánh giá của khách hàng, một khi được đẩy vào hoạt động, tập lệnh cơ sở dữ liệu sẽ tự động thay đổi các giá trị url được tuần tự hóa từ localhost (hoặc tên miền phụ) sang url trực tiếp

Điều này có thể không? Tôi đã nghe nói Capistrano cũng rất tốt để sử dụng với điều này nhưng không chắc cách Capistrano hoàn toàn hoạt động.

Tôi chạy khoảng 200 trang web trên máy chủ của riêng mình và muốn bắt đầu triển khai các trang web này vào môi trường dòng công việc git mạnh mẽ để tôi có thể hợp lý hóa công việc của mình tốt hơn rất nhiều. Ngay bây giờ, về cơ bản, tôi tải xuống một hình ảnh của trang web và làm việc trên đó cục bộ sau đó tải các thay đổi trở lại máy chủ. Điều này là rất tẻ nhạt trong thời đại ngày nay.

Có ai có bất kỳ giải pháp nào liên quan đến loại quy trình công việc này / đã làm việc với điều này trong quá khứ không? Nếu vậy, một số tài nguyên / câu trả lời sẽ được đánh giá rất cao.


3
Tại sao không sử dụng bitbucket vì chúng có repos không giới hạn miễn phí?
Brian Fegter

2
Tìm kiếm thay thế có phiên bản cli nếu bạn kiểm tra repo github, bạn có thể sử dụng phiên bản đó, mặc dù tôi không thể nhận xét về cách bạn nhận được các URL và tham số khác nhau để chuyển vào đó
Tom J Nowell

Câu trả lời:


6

Câu hỏi chung đã trả lời

N.1. Muốn có môi trường git của tôi trên máy chủ của riêng tôi, không sử dụng Github để xử lý repos.

Điều đầu tiên tôi làm là kiểm tra nhà soạn nhạc và cách thức hoạt động với WordPress , đây là một dự án của tác giả "@Rarst" Savigan .

N.2. Tự động tạo các tên miền phụ khi tạo nhánh git ( development.example.com, ryan.development.example.com) - Có thể một số hook script shell sẽ là lý tưởng cho việc này.

Đây là một cái gì đó ngoài phạm vi cho trang web này. Hoặc yêu cầu trợ giúp về StackOverflow hoặc hỏi tại hoster của bạn. Một số máy chủ lưu trữ không cho phép tự chỉnh sửa các mục này.

N.3. Phing PHP / Shell script Xử lý di chuyển db (đại loại như thế này http://interconnectit.com/products/search-and-replace-for-wordpress-database/ ) để xử lý thay thế cơ sở dữ liệu tuần tự khi đẩy

Tôi đã thiết lập cài đặt nhiều trang / mạng. Điều này cho phép dễ dàng quản lý tất cả các bảng, giữ người dùng ở vị trí trung tâm, v.v.

WP Gear - một dự án của Robert "@Wyck" Ellison - có một danh sách các tập lệnh xây dựng thay thế. Bao gồm cả những câu chữ được viết bởi chính mình. @TomJNowells /Interconnect.it script cho đến nay không có trong danh sách đó.

Câu hỏi hoạt động đã trả lời

Không 1. lấy phiên bản wordpress mới nhất hiện tại và phân nhánh nó ra, tên của chi nhánh sẽ có một mục nhập tên miền phụ (Branchdevelopment.domain.com)

Không chắc chắn lý do tại sao một người muốn làm điều này: Một tên miền phụ cho mỗi chi nhánh. Khi bạn nhìn vào kho lưu trữ GitHub được đồng bộ hóa của WordPressdanh sách các chi nhánh , thì bạn sẽ thấy mọi chi nhánh đều được đặt tên X.Y-branch. Vì vậy, tên miền phụ của bạn sẽ được đặt tên cho ví dụ 3.6-branch. Tôi không chắc chắn nếu một tên miền phụ được phép bắt đầu bằng một chữ số (nên là vậy, nhưng hãy hỏi người quản lý của bạn) và sau đó có vấn đề là bạn có một 6-branchtên miền phụ có tên miền phụ có tên miền phụ 3và một cái khác được đặt tên 2. Và đoán ghép các nhánh 2 và 3 phiên bản trong một tên miền phụ không phải là điều bạn muốn đạt được.

Tóm lại: Chỉ cần checkout 3.6-branchbạn cần chuyển chi nhánh.

N.2. mô tả chủ đề mà bạn mong muốn nếu có

Thomas "@toscho" Scholz đã viết một plugin đẹp cho phép chúng tôi sử dụng tên miền phụ để xử lý các chủ đề bên ngoài thư mục WordPress. Bạn có thể tìm thấy nó trong câu trả lời này cũng như trong câu trả lời này . Ngay cả các bản cập nhật tự động sẽ hoạt động cho các chủ đề kể từ WP 3.6.

Bạn có thể làm tương tự cho MU-Plugins và Plugins bằng cách chỉ cần đặt các hằng số sau trong wp-config.phptệp của mình :

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' );

Bây giờ chỉ cần đặt tất cả các plugin và chủ đề của bạn dưới sự kiểm soát phiên bản và đẩy chúng lên máy chủ của bạn. Bạn có thể dễ dàng cung cấp tất cả chúng bằng cách sử dụng các plugin mu hoặc plugin mặc định được kích hoạt mạng.

Kiểm tra Nr.3 và thực hiện các thay đổi, đánh giá của khách hàng, sau khi được đẩy lên, tập lệnh cơ sở dữ liệu sẽ tự động thay đổi các giá trị url được tuần tự hóa từ localhost (hoặc tên miền phụ) sang url trực tiếp

Nếu tập lệnh / plugin Toms không giúp bạn cho đến nay, thì hãy nói rằng anh ấy chấp nhận yêu cầu kéo trên GitHub .


2
Trong 2 tháng tôi tham dự trang web này, tôi hiểu rằng "Tôi đã thiết lập cài đặt đa mạng / mạng" là câu yêu thích của bạn :)
gmazzap

@GM hehe :) Vâng, đúng vậy. Nói chung, tôi thậm chí không hiểu tại sao chúng ta vẫn có các trang web duy nhất. Với một mạng lưới cài đặt, chính miền / trang web của bạn thực sự chính xác giống như trang web duy nhất của bạn cài đặt. Bạn chỉ cần có rất nhiều lựa chọn và khả năng trên đầu trang của nó.
kaiser

Nói chung là tôi đồng ý. Lý do để cài đặt một trang web là: 1) truy cập máy chủ hạn chế 2) phần lớn mã hiện có (plugin, chủ đề, đoạn trích) không hoạt động đúng hoặc có vấn đề với cài đặt newtwork. Vì vậy, nếu bạn không / không thể tự viết mã và bạn thực sự không cần một mạng lưới, hãy sử dụng một cài đặt duy nhất.
gmazzap

1
Nếu tập lệnh Toms không hoạt động, có một trình phân tích tuần tự đầy đủ tính năng trong vùng người dùng PHP có sẵn được gọi là Nối tiếp .
hakre

@hakre Như mọi khi: Vui lòng chỉ chỉnh sửa câu hỏi của tôi :)
kaiser

3

Không có thời gian để viết một câu trả lời đầy đủ tính năng (tôi biết loại khập khiễng) nhưng dù sao cũng có thể đáng để chia sẻ (tôi có thể chỉnh sửa điều này vì tôi cũng lên kế hoạch cho một bài đăng trên blog này):

Điều đó có nghĩa là bạn có thể có một số thiết lập WP dựa trên thân cây / phiên bản nhánh mà bạn hoàn toàn có thể hack. chủ đề và plugin.

Vì đây là một kho lưu trữ độc lập (cục bộ), bạn có thể đẩy nó qua ssh sang các kho khác, ví dụ:

  • Điều đó nằm trên máy chủ từ xa nơi trang web sẽ được triển khai tại (repo trần).
  • Điều đó có các móc để tạo một kho lưu trữ khác trên máy chủ đó thực sự hợp nhất trong các thay đổi bạn vừa đẩy.

Điều này được phác thảo trong quy trình Git tập trung vào web (tháng 11 năm 2008; bởi Joe Maller) .

Nếu sau đó bạn có một trình chuyển đổi cấu hình chọn bê tông wp-config.phpdựa trên hệ thống mà nó đang chạy, bạn thậm chí có thể định cấu hình tập trung tất cả các máy chủ (phát triển, trực tiếp, dàn dựng, bạn bè, ...) trong repo.

Thay đổi ngược dòng trong WP bạn chỉ cần tìm nạp và hợp nhất trong cây con.

Plugin bạn chỉ cần cập nhật và cam kết.

Triển khai là một đơn giản $ git push remote.

Chạy các bản sao lưu hàng ngày trên máy chủ từ xa cho git repos, cơ sở dữ liệu và các tệp được tải lên và đây là giá rẻ, thân thiện với nhà phát triển và linh hoạt. Điều này hoạt động tốt cho các thiết lập của một nhà phát triển cũng như cho các nhóm nhỏ vì mọi người đều có thể kiểm tra từ repro trần trên điều khiển từ xa.


Có một số cảnh báo:


Bây giờ với danh sách kiểm tra của bạn và thiết lập như được nêu ở trên:

1. Muốn có môi trường git của tôi trên máy chủ của riêng tôi, không sử dụng Github để xử lý repos.

Github chỉ xử lý các repos ngược dòng ở đây (Wordpress), không phải của riêng bạn.

2. Tự động tạo các tên miền phụ khi tạo nhánh git (Development.domain.com, ryan.development.domain.com) - Có lẽ một số hook script shell sẽ là lý tưởng cho việc này.

Thiết lập như được phác thảo là một cách tiếp cận mô-đun với một repo trên mỗi trang web. Nó có thể xử lý nhiều máy chủ phát triển như bạn muốn, nó có thể hoạt động tốt với cài đặt nhiều trang để xử lý nhiều tên miền, nhưng điều đó sẽ được tính là một thiết lập wordpress trong phương pháp này.

3. Phing PHP / Shell script Xử lý di chuyển db (đại loại như thế này http://interconnectit.com/products/search-and-replace-for-wordpress-database/ ) để xử lý thay thế cơ sở dữ liệu tuần tự khi đẩy

Điều này không cần thiết ở đây vì chỉ có mã nằm dưới sự kiểm soát phiên bản, cơ sở dữ liệu độc lập giữa phát triển (, dàn dựng) và sản xuất như mong muốn.

Bạn có thể đang tìm kiếm một tập lệnh cài đặt thực hiện di chuyển tên miền, nhưng ngay cả với mã tốt hơn (có sẵn) xử lý tìm kiếm và thay thế dữ liệu nối tiếp, trong thiết lập này ở đây thường không cần thiết vì bạn chỉ cần thay đổi để sống , đối với các trường hợp thử nghiệm, bạn có thể nhanh chóng tạo nội dung trong cơ sở dữ liệu phát triển, đó thường là vấn đề nhỏ nhất (từ kinh nghiệm thực tế của tôi, của bạn có thể khác, nhưng tôi cũng đề nghị giữ các chủ đề liên quan đến di chuyển cơ sở dữ liệu đó cho các câu hỏi về nó sở hữu ở đây trên trang web - nhưng xin vui lòng hỏi họ).

Tôi chạy khoảng 200 trang web trên máy chủ của riêng mình và muốn bắt đầu triển khai các trang web này vào môi trường dòng công việc git mạnh mẽ để tôi có thể hợp lý hóa công việc của mình tốt hơn rất nhiều.

Tôi không thể tưởng tượng làm thế nào các trang web đó sẽ trở thành trong một môi trường dòng công việc git chuỗi. Có lẽ các tập lệnh cấu hình và dữ liệu cấu hình bạn quản lý ở đây sẽ được giữ dưới sự kiểm soát phiên bản git. Điều đó có thể có ý nghĩa. Mặt khác bởi số lượng lớn các trang web tôi nghĩ rằng nó không có ý nghĩa gì cả để giữ tất cả những người trong một git repo. Có lẽ thậm chí không phải là một trong số đó bởi vì những gì tôi đã nêu ở trên là dành cho các trang web bạn phát triển (bao gồm mã lõi WP), không chỉ cho các tác vụ cài đặt. Vì vậy, trước tiên bạn có thể cần tạo cho mình một số bản đồ nhỏ của 200 trang web đó và cách chúng tương tác với nhau và trong số các gói (lõi WP, Plugins, Chủ đề) mà các trang web đó bao gồm. Điều đầu tiên có thể là tạo một bảng tính / ma trận và đặt tất cả các trang web vào.

Sau đó, bạn có thể lưu nó dưới dạng CSV, đặt nó dưới sự kiểm soát phiên bản và làm cho các kịch bản triển khai thực hiện công việc của chúng dựa trên tệp đó.

Và nếu tôi đã học được điều gì đó với việc tự động hóa các tác vụ: Thực hiện theo triết lý Unix, hãy sử dụng các công cụ hoạt động tốt và hiện có (tốt hơn là dành nửa ngày để đọc về một số lệnh sau đó cố gắng tìm kiếm các lựa chọn thay thế vì đối với hầu hết các công việc, vấn đề đã xảy ra đã giải quyết xong) và tập trung vào các công cụ dòng lệnh. Họ mạnh nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.