16

Wordpress 提出了一些挑战,因为它倾向于在数据库中保留太多内容,从而难以从服务器移动到服务器。

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

你的工作流程是怎样的?

4

4 回答 4

5

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

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

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

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

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

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

更新

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

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

于 2010-06-04T10:38:42.593 回答
3

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


编辑

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

我可能会错过更好的方法,但我会给你两个选择:

1.使用 XML Export 导出您的新帖子和评论。然后使用 WordPress 导入器将新帖子和评论导入回开发数据库

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

与此同时,生产发生了变化(新帖子、新评论等)

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

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。

于 2010-09-22T06:30:55.000 回答
1

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

更新: 我使用了http://www.mertyazicioglu.com/projects/wordpress-move/并取得了不错的效果。

京东

于 2010-09-28T10:50:19.983 回答
0

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

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

于 2010-06-08T04:20:42.420 回答