Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于WordPress创建网站的工作流程是什么?_Wordpress_Workflow - Fatal编程技术网

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

基于WordPress创建网站的工作流程是什么?,wordpress,workflow,Wordpress,Workflow,我正在启动一个项目,其中两个人将在WordPress上开发一个网站。可能还需要有一个开发服务器设置,我的客户端可以在推送站点之前查看站点的更改。还可能会有数据库更改(如wordpress设置),这些更改应该从开发到开发再到生产 我想知道最好的工作流程是什么。我理解一般的概念,因为我通常在Rails中开发,因此运行迁移并使用capistrano和git,但我希望WordPress站点也有同样严格的工作流程。有没有经验丰富的WordPress开发人员 更新:也许我说得不够清楚,但我理解wordpre

我正在启动一个项目,其中两个人将在WordPress上开发一个网站。可能还需要有一个开发服务器设置,我的客户端可以在推送站点之前查看站点的更改。还可能会有数据库更改(如wordpress设置),这些更改应该从开发到开发再到生产

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

更新:也许我说得不够清楚,但我理解wordpress。我已经创建了5-10个wordpress博客和定制功能。然而,我从来没有在wordpress网站上与多人一起工作过,或者必须处理开发、登台和生产环境


谢谢大家!

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


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

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

工作流,嗯?我和几个人在复杂的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
#/垃圾箱/垃圾箱
echo正在复制$1到$2。。。
mysqldump-uroot-pPASSWORD$1>/tmp/tempdump.sql
mysql-uroot-pPASSWORD-e“创建数据库$2
mysql-uroot-pPASSWORD$2
我知道这太简单了,但我喜欢这样;)别忘了用你的密码替换密码,也许你不想为了这些目的使用用户根目录(不过我真的不在乎,这就是我为什么这么做的原因)


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

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

我正在使用SVN,所以我选择了我的开发代码的一个新的签出目录(比如/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签出。这个新签出将被转换为生产代码并复制到其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'); 
删除本地文件上传目录(这样我们就不会覆盖生产目录)。wpcontent/上传我相信它是标准安装

例如,在项目中包含my DEV url的所有文本文件上进行另一次查找和替换

vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php
步骤3安装。 为了安全起见,请使用dircopy()备份wpcontent/上载。将此清理目录的dircopy()复制到生产webroot。删除webroot中的所有.svn目录,如下所示:

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

现在,您的开发代码已经转换为生产代码,替换了所有硬编码的URL,并在不在SVN中的uploads目录中保持安全。您甚至可以让它停止并为您启动apache。我希望我的解决方案能帮助你解决问题

好的,我理解wordpress。也许我应该说得更清楚些。这个问题是关于工作流程的,我正在寻找一个具体的答案。我希望在我需要编写脚本的情况下,人们可以提供链接,以便您使用开发网站或一个prod网站。如果您使用开发人员站点,则每次添加插件时都必须复制DB设置。不过,这可能不会太痛苦,只是想得到一些关于这是否是个坏主意的反馈