WordPress搬家换服务器教程是将原服务器的网站文件、数据库和配置文件完整迁移到新服务器,并修改域名解析使网站恢复访问的操作流程。
备份原网站全部文件
登录原服务器文件管理器,或使用FTP/SFTP工具连接网站根目录,找到WordPress安装目录,通常包含wp-admin、wp-content、wp-includes以及wp-config.php等核心文件。

在宝塔面板中,进入网站目录,点击“压缩”,选择tar.gz格式打包整个站点,打包完成后下载压缩包到本地电脑,如果使用命令行,可以执行:
tar-czfwordpress_backup.tar.gz/www/wwwroot/your-site
压缩包下载完成后,建议解压查看文件是否完整,确认wp-content/uploads目录中的图片和附件没有丢失。
导出原网站数据库
进入原服务器的数据库管理工具,例如phpMyAdmin或宝塔数据库管理页面,选择WordPress站点对应的数据库,点击“导出”。
导出方式选择“快速”,格式选择“SQL”,如果数据库较大,建议使用mysqldump命令行导出:
mysqldump-u数据库用户名-p数据库名>wordpress_backup.sql
执行命令后输入数据库密码,就会在当前目录生成wordpress_backup.sql文件,将这个文件下载到本地,并检查文件大小是否正常,避免导出空文件。
创建新服务器网站环境
登录新服务器,安装与原来尽量一致的网站环境,推荐使用LNMP或LAMP,包括Nginx/Apache、PHP 7.4或8.0以上版本、MySQL 5.7或MariaDB 10.3以上版本。
在宝塔面板中新建站点,填写域名,创建FTP和数据库,记录以下信息:
新数据库名
新数据库用户名
新数据库密码
数据库主机地址,通常为
localhost
如果使用命令行创建数据库,可执行:
mysql-uroot-p CREATEDATABASEnew_wordpressCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci; CREATEUSER'new_user'@'localhost'IDENTIFIEDBY'new_password'; GRANTALLPRIVILEGESONnew_wordpress.*TO'new_user'@'localhost'; FLUSHPRIVILEGES; EXIT;
上传网站文件到新服务器
将第一步备份的wordpress_backup.tar.gz压缩包上传到新服务器网站根目录,可以使用宝塔面板上传功能,或使用scp命令:
scpwordpress_backup.tar.gzroot@新服务器IP:/www/wwwroot/new-site/
上传完成后解压:
cd/www/wwwroot/new-site tar-xzfwordpress_backup.tar.gz
解压后需要将文件移动到当前站点根目录,确保wp-config.php、wp-content等文件直接位于根目录下,而不是嵌套在子文件夹中。
导入数据库到新服务器
进入新服务器phpMyAdmin,选择刚才创建的新数据库,点击“导入”,选择本地备份的wordpress_backup.sql文件,执行导入。
命令行导入方式:
mysql-u新数据库用户名-p新数据库名<wordpress_backup.sql
导入完成后,可以检查数据库中的wp_options表,确认siteurl和home两个选项的值与当前域名一致,如果域名没有变化,这两个值可以暂时保留。
修改wp-config.php连接信息
打开新服务器网站根目录下的wp-config.php文件,找到数据库配置部分,修改为:
define('DB_NAME','new_wordpress');
define('DB_USER','new_user');
define('DB_PASSWORD','new_password');
define('DB_HOST','localhost');同时检查$table_prefix变量是否与原数据库表前缀一致,默认是wp_,如果原站点修改过表前缀,需要保持一致,否则会出现“未找到数据表”的错误。
保存文件后,确认文件权限为644,避免因权限过高导致安全风险。
更新网站URL与替换旧域名
如果搬家后域名发生变化,需要将数据库中的所有旧域名替换为新域名,登录phpMyAdmin,执行以下SQL语句:
UPDATEwp_optionsSEToption_value='https://新域名'WHEREoption_name='siteurl'; UPDATEwp_optionsSEToption_value='https://新域名'WHEREoption_name='home'; UPDATEwp_postsSETguid=REPLACE(guid,'http://旧域名','https://新域名'); UPDATEwp_postsSETpost_content=REPLACE(post_content,'http://旧域名','https://新域名');
如果使用了WP-CLI,可以执行更安全的搜索替换:
wpsearch-replace'http://旧域名''https://新域名'--all-tables--skip-columns=guid
注意不要直接替换guid字段中的URL,除非确有必要,否则可能导致RSS订阅异常。
设置网站文件权限
新服务器上的文件归属和权限需要正确设置,否则可能出现无法上传图片、无法更新插件的问题。
在网站根目录执行:
find.-typed-execchmod755{}\;
find.-typef-execchmod644{}\;
chown-Rwww:www/www/wwwroot/new-site其中www是Nginx或Apache的运行用户,不同服务器可能不同,宝塔面板通常使用www,如果有写入需求的目录,例如wp-content/uploads、wp-content/cache,可以额外设置为775。
配置伪静态规则
WordPress固定链接功能需要服务器启用伪静态,如果新服务器使用Nginx,需要在站点配置文件中添加:
location/{
try_files$uri$uri//index.php?$args;
}如果使用Apache,确保网站根目录存在.htaccess文件,并包含以下规则:
<IfModulemod_rewrite.c>
RewriteEngineOn
RewriteBase/
RewriteRule^index\.php$-[L]
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule./index.php[L]
</IfModule>配置完成后重启Nginx或Apache服务使规则生效。
部署SSL证书并强制HTTPS
如果原站点启用了HTTPS,新服务器也需要配置SSL证书,在宝塔面板中申请或上传证书,开启“强制HTTPS”选项。
命令行部署证书后,在wp-config.php中可添加:
define('FORCE_SSL_ADMIN',true);同时检查数据库中是否还有http://的链接残留,使用搜索替换工具将http://替换为https://,避免出现混合内容警告。
十一、修改域名解析
登录域名DNS管理后台,将域名的A记录指向新服务器IP地址,如果使用CDN或云解析,需要同步修改回源地址。
修改后等待解析生效,可以使用以下命令检查:
ping你的域名
确认返回的IP为新服务器地址,DNS解析全球生效通常需要几分钟到几小时不等,期间可以修改本地hosts文件提前测试。
十二、测试网站完整功能
解析生效后,访问网站首页、内页、分类页、文章页,检查是否正常显示,登录WordPress后台,测试以下功能:
发布新文章
上传媒体文件
安装或更新插件
更换主题
提交评论
发送测试邮件
同时检查网站加载速度、图片显示、CSS和JS加载是否正常,打开浏览器开发者工具,查看控制台是否有报错信息。
十三、排查常见迁移错误
如果出现“建立数据库连接时出错”,检查wp-config.php中的数据库名、用户名、密码是否正确,以及数据库用户是否拥有该数据库的访问权限。
如果出现404页面,重新保存固定链接设置,在后台点击“设置-固定链接”,不做任何修改直接保存即可刷新伪静态规则。
如果上传图片提示“无法创建目录”,检查wp-content/uploads目录权限是否为755或775,并确认目录所有者为正确的运行用户。
如果后台登录后跳转回旧域名,使用SQL替换wp_options表中的siteurl和home,并清理浏览器缓存和Cookie。
如果页面样式丢失,检查wp-content/themes和wp-content/plugins目录是否上传完整,以及.htaccess或Nginx伪静态配置是否正确。