Tôi có một thiết lập tôi khá tự hào và nó hoạt động rất tốt cho đội của tôi.
Cấu trúc chung
Tôi giữ toàn bộ cài đặt dưới git. Tất cả các thay đổi, có thể là cập nhật hệ thống, thêm / cập nhật plugin, thêm / cập nhật chủ đề, trải qua cùng một quy trình. Thay đổi có thể được khôi phục tại một thời điểm thông báo. Tôi có một máy chủ triển khai (một máy tính để bàn P4 cũ) đang chạy gitosis nhưng bạn có thể dễ dàng sử dụng github hoặc gitolite . Trong git, tôi có hai nhánh "đặc biệt" master
và develop
(giải thích thêm bên dưới). Máy chủ sản xuất và dàn của tôi dựa trên đám mây.
Môi trường phát triển
Mỗi nhà phát triển chạy máy chủ phát triển riêng của họ trên máy riêng của họ. Về mặt cơ sở dữ liệu, việc cần dữ liệu trực tiếp hầu như không phải là vấn đề. Chúng tôi chủ yếu sử dụng dữ liệu thử nghiệm đơn vị chủ đề . Nếu không thì xuất nhập khẩu bao gồm hầu hết mọi thứ. Nếu phần DB là quan trọng, bạn có thể thiết lập sao chép hoặc thiết lập một cái gì đó để đồng bộ hóa theo yêu cầu. Khi tôi thiết lập cấu trúc này ban đầu, tôi nghĩ rằng điều này rất quan trọng vì vậy tôi đã bắt đầu viết một bộ công cụ để thực hiện việc này, nhưng thật ngạc nhiên là chúng thực sự không cần thiết. (lưu ý: vì chúng không cần thiết, tôi chưa bao giờ đánh bóng chúng, vì vậy có một số lỗi, ví dụ như nó sẽ thay thế tên miền trong dữ liệu nối tiếp).
Môi trường dàn dựng
Khi các cam kết được đẩy từ develop
chi nhánh sang gitosis, chúng sẽ tự động được triển khai đến máy chủ dàn của chúng tôi. Cơ sở dữ liệu dàn là một nô lệ cho cơ sở dữ liệu sản xuất.
Môi trường sản xuất
Khi các cam kết được đẩy đến gitosis trên master
nhánh, nó sẽ tự động được triển khai đến máy chủ sản xuất.
Sự cố wp-config.php
Bạn muốn wp-config.php
là duy nhất từ máy chủ này sang máy chủ khác, nhưng bạn cũng muốn giữ nó dưới sự kiểm soát phiên bản. Giải pháp của tôi là sử dụng .gitignore
để bỏ qua wp-config.php
và lưu trữ các phiên bản dàn dựng và sản xuất dưới dạng các tệp có tên khác nhau. Sau đó, trên mỗi máy chủ, tôi symlink, vd wp-config.php -> wp-config-production.php
. Mỗi người dùng sau đó giữ DB riêng của họ với thông tin đăng nhập của riêng họ, với cài đặt wp-config.php của riêng họ (không bị theo dõi).
Ghi chú khác
Tôi sử dụng Rackspace Cloud , một hiện tượng và không tốn kém. Với nó, tôi có thể giữ các máy chủ dàn dựng và sản xuất của mình giống hệt nhau. Tôi cũng đang viết các plugin ngay bây giờ sử dụng API của họ để cho phép tôi kiểm soát các dịch vụ của mình ngay từ bên trong WordPress, thật tuyệt vời.
Thư mục bộ đệm, thư mục tải lên tệp, v.v., tất cả đều được thêm vào .gitignore. Nếu bạn muốn, bạn có thể thiết lập một tác vụ cron để thường xuyên kiểm tra tải lên và đẩy chúng đến bệnh gitosis, nhưng điều đó dường như không bao giờ cần thiết đối với tôi.
Cấu trúc chính / phát triển được thiết lập để mô phỏng một phần mô hình phân nhánh của Vincent Driessen . Tôi cũng sử dụng git-Flow mở rộng git của anh ấy và tôi cũng rất muốn đề xuất điều đó.
Tôi đã có khoảng 10 nhà phát triển làm việc với cấu trúc này trong hơn một năm nay và đó là một giấc mơ để làm việc cùng. Đáng tin cậy, an toàn, nhanh chóng, chức năng và nhanh nhẹn, bạn không thể yêu cầu nhiều hơn nữa!