wordpress迁移

最近由于工作要求,需要将老服务器上的wordpress迁移到docker容器里面,docker容器是ubuntu系统。

下面是工作步骤:
1,导出老服务器上的wordpress数据库,保存为一个sql文件。
2,将老服务器上的wordpress打包取出。
3,在docker数据库新建数据库,数据库名可以是老服务器wordpress对应的数据库名,也可以自己另外设定。
4,docker数据库导入sql文件,可以使用mysql-font,也可以使用命令行:

>use xxxx;
>set names utf8;
>source ssss.sql;

5,由于导出的sql文件中拥有很多老服务器上的绑定ip,所以在docker数据库中需要将其替换为docker绑定的Ip。
mysql -u 数据库用户名 -p
输入数据库密码

use 刚创建的数据库名;
UPDATE wp_posts SET guid = replace(guid, 'http://原ip/', 'http://新ip/');
UPDATE wp_options SET option_value = replace(option_value, '原ip', 'http://新ip/');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://原ip/', 'http://新ip/');

6,在docker的网站根目录/var/www/html中将之前打包好的wordpress解压,然后修改其中的wp-config.php文件。将其中数据库相关内容修改为docker上mysql信息。

   /** WordPress数据库的名称 */
    define('DB_NAME', 'xxxx');
    
    /** MySQL数据库用户名 */
    define('DB_USER', 'root');
    
    /** MySQL数据库密码 */
    define('DB_PASSWORD', 'root');
    
    /** MySQL主机 */
    define('DB_HOST', 'localhost');
    
    /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8');

7,然后差不多就可以访问了,但是我在迁移过程中遇见伪静态连接无法访问的问题。查阅资料,解决方法如下;
在网站根目录下新建 .htaccess,内容如下:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

然后在apache2.conf里面

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>
将None改为All

接着启用mod_rewrite模块

sudo a2enmod rewrite

最后重启服务器

sudo service apache2 restart

大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值