基于WordPress创建网站的工作流程是什么?

时间:2009-07-02 16:46:29

标签: wordpress workflow

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

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

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

谢谢!

4 个答案:

答案 0 :(得分:2)

为了处理这种类型的DEV和PRODUCTION环境,我编写了一个perl脚本来帮助我完成手动工作。我已经给出了一些熟悉的名字,所以我记得以正确的顺序运行它们。我只有SVN下的DEV。我每次使用此脚本创建一个PRODUCTION环境。这样我就不必担心维护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代码,替换所有硬编码的网址,并保护不在SVN中的上传目录。你甚至可以停下来为你启动apache。我希望我的解决方案有助于解决您的问题。

答案 1 :(得分:1)

工作流程吧?好吧,我在复杂的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;)

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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