首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动化Wordpress开发和部署

自动化Wordpress开发和部署
EN

Stack Overflow用户
提问于 2010-05-24 14:00:20
回答 3查看 3.1K关注 0票数 12

有没有人在一个WordPress项目中与不同地点的多个开发人员一起工作过?是否有关于分布式开发团队和自动化部署的最佳实践?

我有一个由不同程度的开发人员组成的团队,包括插件开发人员,主题开发人员和简单的CSS样式调整器,在几个不同的位置,我想为每个人建立一个好的系统,使每个人都能够在不干扰任何人代码的情况下处理各自的独立部分并不断部署更改。

该系统目前正在运行WordPress-MU的安装,最终将升级到3.0。理想情况下,我们应该将主题和插件存储在源代码管理中,因为对核心WordPress代码做了一些修改,所以它也必须放入存储库中。我在找出构建存储库和进行受控但有些自动化的部署的最佳方法时遇到了麻烦。

当不同类型的插件和主题可能在文件系统或数据库中存储配置时,您如何处理在开发、测试、暂存和生产环境中的工作和部署?我知道答案可能是“不要使用WordPress”,但假设我不得不这样做,让我知道你的想法。

谢谢你的帮忙,

戴夫

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-14 13:35:31

到目前为止,我是如何解决这个问题的:

源代码目录:

代码语言:javascript
运行
复制
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...

我正在使用Hudson CI Server (http://hudson-ci.org/)来使用subversion签出任务、phing和phpunit等自动和手动构建。基本上,Hudson服务器根据您要部署的内容从subversion中提取代码,并将CI服务器中要部署的文件同步到目标服务器。

或者,在从staging直接部署到生产环境的情况下,Hudson rsync将文件从staging向下传输到CI服务器,然后备份到生产环境。

我已经在hudson中为以下功能设置了构建作业:

代码语言:javascript
运行
复制
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

hudson作业还能够将特定于环境的PHP文件(例如wp-config.php、db-config.php)以及Apache和MySQL配置文件部署到每台服务器上的适当位置。在某些情况下,我们部署到多个web服务器和多个数据库服务器,并且通过上面提到的phing构建文件和.properties文件来处理大部分构建配置。

将来,当我们有了开发集成环境时,我们可能会在svn签入任何代码时进行自动化部署。

这种设置允许组织中具有不同技能集(主要是CSS/HTML vs. PHP )的不同开发人员单独工作,并将他们的代码更改快速地发布到适当的环境中,而不会涉及一群不必要的人员。Hudson允许我锁定不同的部署作业,因此只有合适的人员才能配置它们并启动它们。

这是我设置的高级概述,让我知道你的想法。这种设置最大的问题是密钥对、用户帐户和文件权限,以及跨所有不同服务器的rsync。

戴夫

票数 9
EN

Stack Overflow用户

发布于 2010-07-14 02:43:22

对于文件系统,我们使用GIT,它工作得很好。您可以为每个团队成员创建一个分支,然后将其合并到生产分支中。我们可以将我们的代码集成在一起,避免任何麻烦。

对于数据库,我一直在转储prod数据库并与所有人共享(您甚至可以将其发送到GIT repo,然后每个人都将拥有最新的转储)。

票数 0
EN

Stack Overflow用户

发布于 2018-05-30 13:52:25

我发现rollout非常有用。这是一项付费服务,但值得一试。没有脚本,根本没有编码。只需注册并遵循那里的食谱即可。你的任务完成了。此外,它还进行部署前检查,使您的部署变得非常顺利和容易。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2895044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档