【问题标题】:What is a good way to set up a dev, staging and production workflow with wordpress使用 wordpress 设置开发、登台和生产工作流程的好方法是什么
【发布时间】:2023-03-05 12:25:01
【问题描述】:

Wordpress 带来了一些挑战,因为它往往会在数据库中保留太多内容,从而难以在服务器之间移动。

还有哪些需要注意的其他问题?

您的工作流程是怎样的?

【问题讨论】:

标签: wordpress staging dev-to-production


【解决方案1】:

我在我的开发服务器上设置了一个 WordPress 安装来支持多个域。插件和主题文件也是共享的,因此所有博客的升级都是一键式的过程。

我使用 Apache VirtualHosts 将多个域映射到同一个文档根目录,并在主 wp-config.php 中撒上一点魔法来根据当前主机动态设置 DB_NAME(如果你愿意,我可以发布代码)。

为了在本地工作,我只有一个具有 root 权限的 MySQL 用户,并将其用于我的所有数据库(不推荐在生产服务器上使用!)。

我的本​​地域被命名为适合 真实 域,但使用的是假 TLD。所以使用example.com,我设置了一个VirtualHost example.dev

当我准备好上线时,我使用HeidiSQL 制作开发数据库的副本,然后将所有出现的example.dev 替换example.com

复制的数据库现在已准备好进行生产安装。在生产服务器上镜像本地 WordPress 安装(复制插件、上传和主题),并使用 HeidiSQL(推荐)或 phpMyAdmin 导入准备好的数据库。

更新

当然,如果您对其中一个进行更改,然后将所有内容复制到另一个,那么您将丢失对另一个所做的任何更改。这不仅适用于 WordPress,还适用于生活中的几乎所有其他事物!

如果我需要在网站上线后进行重大更改(我所说的重大更改是指不应在生产服务器上进行的更改),我会执行与上面(将所有内容从生产复制到开发),进行更改,然后再次执行相反的操作。

【讨论】:

  • 如何处理创建新页面和存储在数据库中的配置设置?
  • 目前,我创建的每个站点都只是一个全新的数据库安装。我想我可以编写一个插件来批处理一些常见的设置,但是每个站点通常都与其他站点非常不同——例如,页面结构永远不会相同,我只是像你通常那样添加和编辑页面和帖子WP。
  • 我的意思是,如果您在开发服务器上创建一个页面,然后将开发数据库与实时数据库重新同步,您会丢失这些页面。
  • 如果重新同步,为什么会丢失页面?使用我的回答中的方法,重新同步只是将您的开发安装复制到生产中。
  • 因为页面存储在数据库中。因此,如果您只是将代码移过来,则页面不会消失。如果您移动数据库,您将丢失您的内容。另外,如果你反过来,你会清除你的开发数据库中的页面。
【解决方案2】:

WordPress.stackexchange 上提出并回答了同样的问题。它包含从开发到生产快速部署的详细信息和最佳实践。


编辑

这与我在 WordPress Answers 中添加的答案相同。

我可能缺少更好的方法,但我将为您提供 2 个选项:

1.使用 XML Export 导出您的新帖子和 cmets。然后使用 WordPress Importer 将新帖子和 cmets 重新导入到 dev 数据库中

最好先导入到 dev 中,然后将数据库转移到生产中,因为当您导入时,它会从生产中下载所有新媒体文件。

与此同时,生产发生了变化(新职位、新 cmets 等)

这将解决您引入任何更改内容的问题。

2。使用 INSERT IGNORE INTO MySql 命令从 dev 添加新表。或 REPLACE 命令覆盖同一张表中的重复行。

在使用 MySql 之前备份两个数据库并将 gz 数据库移动到生产服务器并上传转储(如果与生产相同,请更改 dev 的名称。

INSERT IGNORE INTO `_wp_production_db`.`wp_cool_plugin_options`
SELECT *
FROM `_wp_dev_db`.`wp_cool_plugin_options`

我对 MySql 命令不满意,所以我会选择选项 1。

【讨论】:

  • 天哪,我什至不存在(wordpress.stackexchange)...谢谢!
  • 然而,这个答案并没有真正涵盖 Mr.blockhead 上面提到的实际 2 路同步。这也是我最感兴趣的。
【解决方案3】:

我的本​​地计算机上有开发站点并更改本地主机文件,以便对实时服务器 (www.example.com) 的调用指向本地主机。这样,对外部文件(jquery 等)的所有调用仍然有效,我不必费心通过数据库来更改任何内容。 前和通过 wordpress XML 导入内容给了我最好的结果。

更新: 我用过http://www.mertyazicioglu.com/projects/wordpress-move/,效果不错。

京东

【讨论】:

    【解决方案4】:

    如果您安装了 phpMyAdmin,将 wordpress 站点从服务器移动到服务器应该不是问题。只需将数据库导出到 tar.gz 并通过 FTP 复制您的自定义主题(如果您使用主题),然后在创建新数据库和新的 wordpress 转储后,将它们重新上传到新服务器。对数据库中的主页和博客 url 进行 2 次更改,对 wp-config 文件进行 2 次更改,然后您就完成了。

    我遇到的一件事是 3rd 方插件。我最终自己编写了很多画廊和 javascript 小部件,因为 3rd 方插件要么看起来像垃圾,要么很慢,要么不能按我想要的方式工作。 感谢上帝的 JQuery。

    【讨论】:

    • 这并没有真正涵盖在开发过程中生产内容发生变化的情况。
    猜你喜欢
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2012-11-15
    • 2015-08-20
    • 2017-08-05
    相关资源
    最近更新 更多