无论您是将 WordPress 移动到新服务器还是服务器上的其他位置,都无需重新安装。WordPress 足够灵活,可以处理所有这些情况。
迁移到新服务器 #
如果您要将 WordPress 从一台服务器移动到另一台服务器,请首先备份您网站上的 WordPress 目录、图像、插件和其他文件以及数据库。请参阅WordPress 备份和备份您的数据库。
保留您的域名和 URL #
在不更改 WordPress 站点的主页和站点 URL 的情况下移动域非常简单,在大多数情况下可以通过移动文件来完成。
- 如果数据库和 URL 保持不变,您只需复制文件和数据库即可移动。
- 如果数据库名称或用户更改,请编辑 wp-config.php以获得正确的值。
- 如果要在切换前进行测试,必须临时更改数据库表“wp_options”中的“siteurl”和“home”(通过phpMyAdmin或类似方式)。
- 如果您有任何类型的重写(永久链接)设置,您必须禁用 .htaccess 并在它上线时重新配置永久链接。
更改您的域名和 URL #
移动网站并更改您的域名或 URL(即从http://example.com/site到http://example.com或http://example.com到http://example.net)需要以下步骤 – 按顺序。
- 下载您现有的站点文件。
- 导出数据库——进入 MySQL 并导出数据库。
- 将备份的文件和数据库移动到一个新文件夹——安全的地方——这是您的站点备份。
- 登录到您要移动的站点并转到“设置”>“常规”,然后更改 URL。(即从http://example.com/到http://example.net)——保存设置并期望看到 404 页面。
- 再次下载您的站点文件。
- 再次导出数据库。
- 使用新服务器的 MySQL 数据库名称、用户和密码编辑 wp-config.php。
- 上传文件。
- 在新服务器上导入数据库。
当您的域名或 URL 发生变化时,还有其他问题。文件和数据库可以移动,但是对旧域名或位置的引用将保留在数据库中,这可能会导致链接或主题显示出现问题。
如果您在整个数据库上进行搜索和替换以更改 URL,则可能会导致数据序列化问题,因为某些主题和小部件存储值时标记了 URL 的长度。当这种情况发生变化时,事情就会破裂。为避免该序列化问题,您有以下三种选择:
- 如果您可以访问您的仪表板,请使用Velvet Blues 更新 URL或Better Search Replace插件。
- 如果您的托管服务提供商(或您)已安装 WP-CLI,请使用WP-CLI 的搜索替换。
- 使用搜索和替换 WordPress 数据库脚本安全地将旧域上的所有实例或路径更改为新域。(** 仅当您对数据库管理感到满意时才使用此选项**)
注意:仅对 wp_posts 表执行搜索和替换。
注意:从 Interconnectit 搜索和替换是第 3 方脚本
在现有服务器上移动目录 #
将 WordPress 文件从服务器上的一个位置移动到另一个位置(即更改其 URL)需要特别小心。如果您想将 WordPress 移动到它自己的文件夹,但让它从您的域的根目录运行,请阅读为WordPress 提供自己的目录以获取详细说明。
以下是将您的 WordPress 网站移动到同一服务器上的新位置的分步说明:
- 使用以下两个选项之一创建新位置:
- 如果要将 WordPress 核心文件移动到新目录,请创建新目录。如果要将 WordPress 移动到根目录,请确保备份所有 index.php、.htaccess和其他可能被复制的文件向上和/或移动,并且根目录已准备好用于新的 WordPress 文件。
- 登录您的网站。
- 转至管理>设置>常规屏幕。
- 在WordPress 地址 (URL) 框中:将地址更改为主要 WordPress 核心文件的新位置。
- 在站点地址 (URL) 框中:将地址更改为新位置,该位置应与 WordPress(您的公共站点)地址匹配。
- 单击保存更改。
- (现在不要尝试打开/查看您的网站!)
- 将您的 WordPress 核心文件移动到新位置。这包括在原始目录中找到的文件,例如 http://example.com/wordpress,以及所有子目录到新位置。
- 现在,尝试通过访问 yourdomain.com/wp-admin 打开您的站点。请注意,您可能需要访问 yourdomain.com/wp-login.php
- 如果您正在使用Permalinks,请转到Administration > Settings > Permalinks面板并将您的 Permalink 结构更新为您的.htaccess文件,该文件应与主 index.php 文件位于同一目录中。
- 现有图像/媒体链接上传的媒体将引用旧文件夹,并且必须使用新位置进行更新。您可以使用Better Search Replace或Velvet Blues Update URLs插件、WP-CLI 的 search-replace(如果您的托管服务提供商(或您)已安装 WP-CLI)、在您的 SQL 数据库中手动安装或使用第 3 方数据库更新来执行此操作工具搜索和替换数据库脚本* 注意:这个脚本最好由有经验的开发人员使用。
- 在某些情况下,您的权限可能已更改,具体取决于您的 ISP。注意任何具有“0000”权限的文件并将它们更改回“0644”。
- 如果您的主题支持菜单,则指向您主页的链接可能仍会嵌入旧的子目录。转到外观 > 菜单并更新它们。
- 有时您需要重新启动服务器,否则您的服务器可能会出错。(发生在 MAMP 软件 (Mac) 中)。
在移动文件之前设置 URI 位置很重要。
如果您忘记更改位置 #
如果您在更改 URI 之前不小心移动了文件:您有两个选择。
- 假设文件最初位于
/path/to/old/
并且您/path/to/new
在更改 URI 之前将它们移动到。解决此问题的方法是创建/path/to/old/
一个符号链接(对于 Windows 用户,“符号链接”相当于“快捷方式”)到/path/to/new/
, ieln -s /path/to/new /path/to/old
然后照常执行上述步骤。之后,如果需要,请删除符号链接。 - 如果您忘记更改 WordPress 地址和博客地址,您将无法使用 wordpress 界面进行更改。但是,如果您有权访问数据库,则可以修复它。转到您站点的数据库并找到该
wp_options
表。此表存储您可以在界面中设置的所有选项。WordPress 地址和博客地址存储为siteurl
和home
(option_name 字段)。您所要做的就是将 option_value 字段更改为带有option_name=’siteurl‘ or option_name=’home‘
.
注意:有时,WordPress 地址和博客地址存储在 WordPress Transients中。搜索和替换脚本可能无法将它们修改为新地址,因此某些插件可能会因此引用旧地址。瞬态是存储在wp_options
数据库表中的临时(缓存)值,可以在删除时按需重新创建。因此,从迁移的数据库副本中删除它们并让它们重新创建是安全的。这个数据库查询(再次,有一个备份!)清除所有瞬态:
从 `wp_options` 中删除,其中 option_name LIKE '%\_transient\_%'
如果您不小心更改了 WordPress 网站 URL #
假设您不小心更改了无法移动文件的 URI(但仍然可以通过重定向或其他方式访问登录页面)。
wp-login.php可用于(重新)设置 URI。找到这一行:
要求(目录名(__FILE__)。'/wp-load.php');
并在下面插入以下行:
//FIXME: 注释/删除这些 hack 行。(一旦数据库更新)
update_option('siteurl', 'http://your.domain.name/the/path' );
update_option('home', 'http://your.domain.name/the/path' );
你完成了。测试您的网站以确保其正常工作。如果更改涉及您网站的新地址,请确保让人们知道新地址,并考虑在您的 .htaccess 文件中添加一些重定向说明,以将访问者引导至新位置。
更改站点 URL还提供了此过程的详细信息。
管理您的旧站点 #
关闭它 #
- 从您的旧站点下载主要 wordpress 文件的副本到您的硬盘驱动器并编辑 wp-config.php以适应新服务器。
- 返回您的旧站点并转到“管理” > “设置” > “常规”屏幕并将 URL(两者)更改为新站点的 URL。
- 登录您的服务器,转到 phpMyAdmin,导出为文件,然后保存您的数据库(但保留旧数据库以防万一)。现在,将这个新数据库和带有已编辑 wp-config.php 的 wordpress 核心文件的副本上传到您的新服务器。而已!
保持运行 #
注意:在继续之前,请确保您备份了旧站点的 WordPress 数据库!
A 部分 – 激活您的新站点
- 将整个 WordPress 安装下载到硬盘。适当地命名文件夹以表明这是您的 OLD 站点的安装。
- 下载您的数据库。
- 返回您的旧网站并转到选项并将网址(两者)更改为您的新网站的网址。
- 再次,将整个 WordPress 安装下载到硬盘上。适当地命名文件夹以表明这是您的新站点的安装。
- 再次下载您的数据库(但保留旧的)。将此数据库上传到您的新服务器。如果您使用相同的数据库名称并在新服务器上创建与旧服务器上相同的登录凭据,这将是最简单的。
- 如果您使用不同的数据库名称和/或用户(参见上一步),请在您的新站点的安装文件夹中适当地编辑 wp-config.php 。
- 将新站点的安装文件夹上传到您的新站点。Presto,您的新网站应该可以正常工作了!
B 部分 – 恢复您的旧站点
- 在原始服务器上,删除旧站点的数据库(请记住,您应该在本地计算机上保存一开始制作的副本)。
- 将您的旧站点的安装文件夹上传到您的原始服务器,覆盖当前存在的文件(您也可以删除服务器上的安装文件夹并简单地重新上传旧站点的文件)。
- 将旧站点的数据库从本地计算机上传到服务器。应该这样做!
制作帖子、评论、页面、类别和自定义字段(帖子状态、数据、永久链接、ping 状态等)的副本的另一个过程易于遵循:
- 安装新的 WordPress 网站
- 转到旧站点管理面板。在这里,在“管理”>“导出”中,在“限制作者”菜单中选择“全部”。
- 点击下载导出文件
- 在新站点中继续管理 > 导入,选择 WordPress 项目。
- 在将显示的页面中,选择刚刚导出的文件。点击上传文件并导入
- 会出现一个页面。在分配作者中,将作者分配给已存在的用户或创建新用户。
- 点击提交
- 最后,点击玩得开心
注意:使用这种方法,如果新站点中有一些文章(如Hello World,Info Page等),这些不会被删除。仅添加文章。使用前一种程序,新站点中的文章将被删除。
移动 WordPress 多站点 #
多站点的移动有些复杂,因为数据库本身具有对服务器名称和文件夹位置的多个引用。如果您只是移动到具有相同域名的新服务器,您可以复制文件和数据库,就像传统安装一样。
相反,如果您正在更改域,那么移动 Multisite 的最佳方法是移动文件,编辑 .htaccess 和 wp-config.php(如果包含 Multisite 的文件夹名称已更改),然后手动编辑数据库。搜索您的域名的所有实例,并根据需要进行更改。这一步还不能轻易自动化。搜索/替换任何 wp_x_posts 表是安全的,但是不要尝试在没有搜索和替换 WordPress 数据库脚本(又名互连脚本)的情况下进行全面搜索/替换。
如果要将 Multisite 从一个文件夹移动到另一个文件夹,则需要确保编辑 wp_blogs 条目以正确更改文件夹名称。无论如何,您都应该手动检查 wp_site 和 wp_blogs,以确保所有站点都已正确更改。
此外,手动查看所有 wp_x_options 表并查找三个字段并根据需要进行编辑:
- 家
- 网址
- 文件上传网址
如果您要从子域移动到子文件夹,反之亦然,请记住相应地调整 .htaccess 文件和 wp-config.php 文件中 SUBDOMAIN_INSTALL 的值。