【问题标题】:What is your workflow for creating websites based on WordPress?您基于 WordPress 创建网站的工作流程是什么?
【发布时间】:2009-07-02 16:46:29
【问题描述】:

我开始了一个项目,其中 2 个人将在 WordPress 上开发一个网站。还可能需要有一个开发服务器设置,我的客户可以在我们将其推送之前查看对站点的更改。还可能存在应该从开发到开发再到生产的所有数据库更改(如 wordpress 设置)。

我想知道最好的工作流程是什么。我了解一般概念,因为我通常在 Rails 中开发,因此运行迁移并使用 capistrano 和 git,但我希望 WordPress 站点具有相同的紧凑工作流程。有经验丰富的 WordPress 开发人员吗?

更新:也许我没有说清楚,但我了解 wordpress。我创建了 5-10 个 wordpress 博客和自定义功能。但是,我从来没有在一个多人的 wordpress 网站上工作过,也没有处理过开发、登台和生产环境的问题。

谢谢!

【问题讨论】:

    标签: wordpress workflow


    【解决方案1】:

    为了处理这种类型的 DEV 和 PRODUCTION 环境,我编写了一个 perl 脚本来帮助我完成原本需要手动完成的工作。我给了某些步骤熟悉的名称,所以我记得以正确的顺序运行它们。我只有SVN下的DEV。我每次都用这个脚本创建一个生产环境。这样我就不用担心维护 2 个代码分支了。

    我正在使用 SVN,因此我选择了我的 DEV 代码的新结帐目录(如 /tmp/foobar)。它不会在那里很长时间。

    可选步骤 0:区分数据库结构

    mysqldump -d -u USER -pPASS mydotcom > production.sql
    mysqldump -d -u USER -pPASS mydotcom_dev > development.sql
    vim -d production.sql development.sql
    

    有时插件会添加表格,这将表明这一点。否则,当区分某些表和复制 SQL 语句不值得时,我会重播表中所做的更改(安装插件)。

    第 1 步清洁: 该脚本删除当前目录中的所有文件,对 DEV 分支执行全新的 svn 签出。这个新的结帐将被转换成 PRODUCTION 代码并复制到它的 webroot。

    第 2 步制作: perl 运行 vim 搜索并替换 wpconfig.php 中的数据库名称。搜索和替换在 perl 中同样容易完成。

    system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php'); 
    

    删除本地文件上传目录(这样我们就不会覆盖 PRODUCTION 目录)。 wpcontent/uploads 我相信它是标准安装。

    在项目中具有我的 DEV url 的所有文本文件上进行另一个查找和替换,例如

    vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php
    

    第 3 步安装。 使用 dircopy() 备份 wpcontent/uploads 以确保安全。将此清理后的目录执行 dircopy() 到 PRODUCTION webroot。像这样删除 webroot 中的所有 .svn 目录:

    find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1
    

    现在,您的 DEV 代码已转换为您的 PRODUCTION 代码,替换了所有硬编码的 URL,并确保了不在 SVN 中的上传目录周围的安全。你甚至可以让它停止并为你启动 apache。我希望我的解决方案有助于解决您的问题。

    【讨论】:

      【解决方案2】:

      工作流程吧?好吧,我在复杂的 WordPress 网站上与几个人一起工作,现在仍然如此。我们大部分时间都使用 Subversion 和 Trac,很少会在数据库中进行一些更改。我猜只是在设置期间。

      这是脚本:

      #!/bin/sh
      echo Copying $1 to $2 ...
      mysqldump -uroot -pPASSWORD $1 > /tmp/tempdump.sql
      mysql -uroot -pPASSWORD -e "CREATE DATABASE $2;"
      mysql -uroot -pPASSWORD $2 < /tmp/tempdump.sql
      rm -f /tmp/tempdump.sql
      echo Complete
      

      这太简单了,我知道,但这就是我喜欢的方式;)不要忘记用您的密码替换 PASSWORD 并且也许您不想将用户 root 用于这些目的(我不不过真的很在乎,这就是我这样做的原因。

      例如将文件保存到copydb.sh,然后 chmod +x copydb.sh 然后你可以像这样运行它:./copydb.sh database1 database2 ;)

      【讨论】:

      • 您使用开发网站还是只使用一个产品网站。如果您使用开发站点,则每次添加插件时都必须复制数据库设置。不过,这可能不会太痛苦,只是想获得一些反馈,说明这是否是一个坏主意
      【解决方案3】:

      WordPress 倾向于非常模块化;我认为源代码控制会有所帮助,并且可能会编写一个脚本来自动上传到预览站点。您可以保留一个仅由 SVN 更新的文件夹和一个工作文件夹。

      从某种意义上说,WordPress 是模块化的,它可以使用页面模板和小部件以及插件。您可以将站点的各个部分编写为小部件和插件,并将它们组合在一起以使其正常工作。对于具有自定义布局或 PHP 代码的页面,您可以使用页面模板。你很少需要接触 WordPress 的核心文件(任何人也不应该),所以如果你坚持使用 WordPress 提供的扩展工具就可以了。

      【讨论】:

      • 好的,我了解 wordpress。也许我应该更清楚地说明这一点。这个问题专门关于工作流程,我正在寻找具体的答案。我希望在我需要编写脚本的情况下,人们可以提供链接
      【解决方案4】:

      您可能想尝试使用 Role Manager 插件进行权限管理,并尝试使用 Turnkey Wordpress 在虚拟机中快速安装 wp。不过,对于可能具有类似 git 角色的东西一无所知。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        • 1970-01-01
        相关资源
        最近更新 更多