我开始了一个项目,两个人将在WordPress上开发一个网站。这也是必要的,有一个开发服务器的设置,我的客户可以查看对网站的更改,然后我们推动它的生活。也可能会有数据库更改(比如wordpress设置),这些更改应该从开发一直到开发到生产。
我想知道最好的工作流程是什么。我理解一般概念,因为我通常在Rails中开发,因此运行迁移并使用capistrano和git,但是我希望对WordPress站点具有相同的紧凑工作流程。有任何经验丰富的WordPress开发人员吗?
更新:也许我没有说得足够清楚,但我理解wordpress。我已经创建了5-10 wordpress博客和定制功能。然而,我从未在wordpress站点上与多个人一起工作,也从未处理过开发、分期和生产环境的问题。
谢谢!
发布于 2009-07-10 23:53:04
为了处理这种类型的DEV和生产环境,我编写了一个perl脚本来帮助我完成本来是手工工作的工作。我给出了一些熟悉的步骤,所以我记得按正确的顺序运行它们。我只在SVN下有DEV。我每次都用这个脚本创建一个生产环境。这样,我就不必担心维护代码的两个分支。
我使用SVN,所以我选择了DEV代码的一个新的签出目录(如/tmp/foobar)。它不会在那里呆很久。
可选步骤0: diff数据库结构
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签出。这个新签出将被转换为生产代码并复制到它的webroot中。
第2步: perl在wpconfig.php中运行vim搜索并替换数据库名。在perl中搜索和替换也同样容易。
system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php');
删除本地文件上传目录(这样我们就不会覆盖生产目录)。我相信这是在一个标准的安装上。
另一个查找和替换项目中所有具有我的DEV url的文本文件,例如
vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php
第三步安装。为了安全起见,请使用dircopy()备份wpcontent/上载。对这个清理过的目录执行一个dircopy()到PRODUCTION。删除webroot中的所有.svn目录如下:
find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1
现在,您的DEV代码已经转换为您的生产代码,替换了所有硬编码的URL,并在未位于SVN中的上传目录周围保持安全。您甚至可以让它停止并为您启动apache。我希望我的解决方案能解决你的问题。
发布于 2009-07-10 07:49:47
工作流程是吧?我和几个人一起在复杂的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
这太简单了,我知道,但这就是我喜欢的方式;)不要忘了用密码替换密码,也许你不想为此目的使用用户根(不过,我并不在乎,这就是我这么做的原因)。
例如,将文件保存到copydb.sh
中,然后将chmod +x copydb.sh,然后您可以像这样运行它:./copydb.sh database1 database2
;)
发布于 2009-07-02 16:55:48
WordPress倾向于模块化;我认为源代码管理会有所帮助,也许还会编写一个脚本来自动上传到预览站点。您可以保留一个仅由SVN更新的文件夹和一个工作文件夹。
WordPress是模块化的,因为它可以使用页面模板和小部件,以及插件。您可以将站点的各个部分作为小部件和插件编写,并将它们放在一起以使其正常工作。对于具有自定义布局或PHP代码的页面,可以使用“页面模板”。您很少需要接触WordPress核心文件(任何人也不应该),所以如果您坚持使用WordPress提供的扩展工具,就可以了。
https://stackoverflow.com/questions/1075470
复制相似问题