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.php
dự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.