在备份和迁移 WordPress 网站时,最常见的问题之一就是域名重定向,尤其是当从原有的生产环境迁移到本地环境进行调试时。此外如果你的 WordPress 设置了 HTTPS 重定向,而你在本地并没有配置 SSL 证书,可能会遇到 ERR_SSL_PROTOCOL_ERROR
错误,导致无法访问后台页面。本文将介绍如何在本地部署备份的 WordPress 网站并解决域名重定向问题。
步骤 1:准备 Docker Compose 部署环境
首先,确保你已经使用 Docker Compose 在本地部署了 WordPress 和 MySQL 服务。以下是一个示例的 docker-compose.yml
文件:
docker-compose.yml:
version: '3.3'
services:
wordpress:
image: wordpress:latest
ports:
- "18080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
- ./wp_data:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- ./db_data:/var/lib/mysql
确保你将备份的数据文件放到相应的位置,并启动服务:
docker-compose up -d
步骤 2:修改 wp-config.php
文件以覆盖域名设置
在本地环境中,原来的生产域名可能会导致重定向到错误的 URL。为了解决这个问题,可以修改 wp-config.php
文件。
在 wp-config.php
中添加以下两行代码,强制 WordPress 使用你能访问的URL,如果是本地 URL即为:
define('WP_HOME', 'http://localhost:18080');
define('WP_SITEURL', 'http://localhost:18080');
将这些代码添加到文件中 /* That's all, stop editing! Happy publishing. */
上方的位置,这样 WordPress 会自动使用本地地址而不是之前的生产环境域名。
步骤 3:权限修复
在项目根目录运行
sudo chown -R 33:33 ./wp_data/wp-content/plugins
sudo chown -R 33:33 ./wp_data/wp-content/themes
sudo chown -R 33:33 ./wp_data/wp-content/uploads
sudo chown -R 33:33 ./wp_data/wp-content/upgrade
sudo chown -R 33:33 ./wp_data/wp-content/
sudo chmod -R 775 ./wp_data/wp-content/plugins
sudo chmod -R 775 ./wp_data/wp-content/themes
sudo chmod -R 775 ./wp_data/wp-content/uploads
sudo chmod -R 775 ./wp_data/wp-content/upgrade
sudo chmod -R 775 ./wp_data/wp-content/
步骤 4:禁用 Really Simple SSL 插件
如果你的 WordPress 网站之前安装了 Really Simple SSL 插件,它可能会导致本地访问时自动重定向到 HTTPS,从而引发 ERR_SSL_PROTOCOL_ERROR
错误。由于你无法访问 WordPress 后台来禁用插件,可以通过以下方法手动禁用它。
方法:通过数据库禁用插件
- 进入 MySQL 容器:
docker-compose exec db mysql -u wordpress -pwordpress wordpress
- 查询当前激活的插件:
SELECT * FROM wp_options WHERE option_name = 'active_plugins';
- 找到
really-simple-ssl/rlrsssl-really-simple-ssl.php
,并通过以下 SQL 语句将其移除:
UPDATE wp_options
SET option_value = 'a:4:{i:0;s:31:"elementor-pro/elementor-pro.php";i:1;s:23:"elementor/elementor.php";i:2;s:19:"jetpack/jetpack.php";i:3;s:39:"wp-add-mime-types/wp-add-mime-types.php";}'
WHERE option_name = 'active_plugins';
这样就可以禁用 Really Simple SSL 插件,防止重定向到 HTTPS。注意第二行需要根据你的实际情况删除really-simple-ssl
步骤 5:清除浏览器缓存并测试访问
完成以上步骤后,确保清除浏览器缓存,或者使用隐身模式访问 http://localhost:18080
。这样你就可以正常访问本地部署的 WordPress 网站,并进行调试和开发。
可能出现的问题
Elementor存在一个Bug,会导致一些页面的CSS文件丢失,首先尝试Elementor-Tools-Regenerate CSS选项,如无效果,则前往Elementor-Settings-Performance将CSS Print Method改为Internal Embedding。
总结
在迁移 WordPress 备份到本地环境时,常常会遇到域名重定向和 SSL 问题。通过修改 wp-config.php
文件覆盖域名设置,并手动禁用像 Really Simple SSL 这样的插件,你可以成功解决这些问题,确保本地访问无误。希望这些步骤对你在本地调试和开发 WordPress 网站时有所帮助。