Sau đây là cách tôi đã kết thúc giải quyết vấn đề này cho đến nay:
Source code danh bạ:
build/ - build files for phing and environment-specific properties files
build.xml
src_qa.properties - properties to use the qa server as the source for a deployment
dst_qa.properties - properties to use the qa server as the destination for a deployment
etc... for other environments
conf/ - contains environment specific configuration files, each in a subfolder named after the environment
dev/
db-config.php - config file for HyperDB - http://codex.wordpress.org/HyperDB
default - Apache conf that holds ServerAlias configs for multi-site WordPress
hosts - useful for developers to redirect their browser to various domains in different environments
htaccess.dist - for WPMU
httpd.conf - main Apache config file, specific to each environment
my.cnf - mysql config file
wp-config.php - main wordpress config file
qa
(same as dev/ but with different values in each file)
staging
(same as dev/ but with different values in each file)
prod
(same as dev/ but with different values in each file)
src/ - wordpress source code
wp-admin/
wp-content/
mu-plugins/
plugins/
themes/
wp-includes/
test/ - holds WP test suite and custom tests for plugins, themes, etc...
Tôi đang sử dụng Hudson CI Server (http://hudson-ci.org/) để để tự động và thủ xây dựng sử dụng nhiệm vụ lật đổ thanh toán , phing, và phpunit, vv ... Về cơ bản, máy chủ Hudson lấy mã từ subversion phụ thuộc vào những gì bạn muốn triển khai, và rsync của các tập tin được triển khai từ máy chủ CI ra đến máy chủ đích.
Hoặc, trong trường hợp triển khai từ dàn dựng trực tiếp đến sản xuất, Hudson rsync của các tập tin từ dàn dựng, xuống đến máy chủ CI, và sau đó sao lưu vào sản xuất.
Tôi đã xây dựng thiết lập việc làm trong hudson cho các mảnh sau các chức năng:
core WP code - deploys core WP files and mu-plugins from src to dst
svn to qa
svn to staging
staging to prod
WP plugins/ folder - deploys only the plugins folder
svn to qa
svn to staging
staging to prod
WP themes/ folder - deploys the entire themes folder
svn to qa
svn to staging
svn to prod
Specific themes - deploys a specific theme (chosen through a drop down during the build process using Hudson's parameterized build feature - http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Build)
svn to qa
svn to staging
svn to prod
Những công việc hudson cũng có khả năng triển khai môi trường các file PHP cụ thể (ví dụ wp-config.php, db-config. php), cũng như các tệp cấu hình Apache và MySQL đến các vị trí thích hợp trên mỗi máy chủ. Trong một số trường hợp, chúng tôi triển khai cho nhiều máy chủ web và nhiều máy chủ cơ sở dữ liệu và hầu hết cấu hình xây dựng được xử lý thông qua tệp xây dựng phing và các tệp .properties được đề cập ở trên.
Trong tương lai, khi chúng tôi có môi trường tích hợp phát triển, chúng tôi có thể sẽ triển khai tự động khi kiểm tra svn bằng bất kỳ mã nào.
Thiết lập này cho phép các nhà phát triển khác nhau trong tổ chức với các kỹ năng khác nhau (CSS/HTML so với PHP chủ yếu) để làm việc riêng biệt và thay đổi mã của họ ra môi trường thích hợp một cách nhanh chóng mà không cần đến nhiều người không cần thiết. Hudson cho phép tôi khóa các công việc triển khai khác nhau để chỉ những người phù hợp mới có quyền truy cập vào cấu hình chúng và khởi động chúng.
Đó là loại tổng quan cấp cao về những gì tôi đã thiết lập, cho tôi biết suy nghĩ của bạn. Những phiền toái lớn nhất với thiết lập này là keypairs, tài khoản người dùng và quyền truy cập file với rsync trên tất cả các máy chủ khác nhau.
Dave
Tôi biết một bó của folks đang sử dụng Capistrano với railsless-triển khai cho việc triển khai WordPress http://theme.fm/2011/08/tutorial-deploying-wordpress-with-capistrano-2082/. Trong khi tôi đã thực hiện thành công điều này một vài lần tôi vẫn chưa hoàn toàn áp dụng nó vào quy trình làm việc của chúng tôi. Tôi cảm thấy sử dụng Git/GitHub làm cơ sở cho việc triển khai của bạn chắc chắn là một hướng đi tốt. Một tùy chọn khác mà chúng tôi đang xem xét là http://beanstalkapp.com/features/deployments – jeffreynolte