wordpress与兰空图床迁移

新服务器

环境准备
安装nginx php8.0 mysql redis wordpress 兰空图床
正常安装即可,后面再导入数据

具体参考
nginx 安装配置 https://cuger.top/nginx/
wordpress 安装 https://blog.csdn.net/qq_33210743/article/details/107539728
兰空图床安装 https://docs.lsky.pro/docs/enterprise/v1/quick-start/installation.html
nginx中介绍的php环境就可以满足兰空图床,只需再装apt install php8.0-bcmath即可

redis安装

apt install php8.0-redis redis-server

解除nginx文件限制
vim /etc/nginx/nginx.conf
client_max_body_size 500m;

解除php文件上传大小
vim /etc/php/8.0/fpm/php.ini
upload_max_filesize = 512M
post_max_size = 512M
memory_limit = 512M

提前创建图床数据库,后续导入需要
mysql -u root -p
Enter password:**
mysql> create DATABASE picbed;

配置nginx
/etc/nginx/sites-available/default

旧服务器

wordpress使用all-in-one-wp migration插件与all-in-one-wp-migration-file-extension插件
后者目的是解除大文件限制

兰空图床迁移mysql中picbed库
mysqldump -u root -p picbed > database_dump_picbed.txt
/var/www/html/picbed/public/thumbnails以及
/var/www/html/picbed/public/i目录

迁移

wordpress 用插件迁移后,在wp设置中修改url地址。
注意还需scp 备案图标.png ubuntu@42.194.181.15:/var/www/html/wordpress/ 同时修改主题里的url,如果网页存在使用ip访问的资源,会导致https显示不完全安全。

兰空图床
实际上可以新搭建一个,然后同步数据库和图片
mysql -u root -p picbed < database_dump_picbed.txt
scp -r i ubuntu@42.194.181.15:/var/www/html/picbed/i
迁移完成以后将跟目录(/var/www/html/picbed)所有文件夹、子文件夹、文件的权限改为 0755,所有组/权限组改为www-data:www-data

修改dns,证书。

FAQ

  1. wordpress 进入调试模式的方式
    /var/www/html/wordpress/wp-config.php

    #define('WP_DEBUG', true);
    #define('WP_DEBUG_LOG', true);
  2. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature
    压缩包中签名错误,解压后重新压缩成zip即可

  3. 安装all-in-one-wp-migration-file-extension插件后进入导入界面报错:There has been a critical error on this website. Please check your site admin email inbox for instructions.
    通过进入wordpress调试模式,发现 Fatal error: Uncaught Error: Undefined constant "AI1WM_MAX_FILE_SIZE" in /var/www/html/wordpress/wp-content/plugins/all-in-one-wp-migration-file-extension/lib/controller/class-ai1wmte-main-controller.php:131 Stack trace: #0 /var/www/html/wordpress/wp-includes/class-wp-hook.php(310): Ai1wmte_Main_Controller->enqueue_import_scripts_and_styles() #1 /var/www/html/wordpress/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters() #2 /var/www/html/wordpress/wp-includes/plugin.php(517): WP_Hook->do_action() #3 /var/www/html/wordpress/wp-admin/admin-header.php(118): do_action() #4 /var/www/html/wordpress/wp-admin/admin.php(239): require_once(‘…’) #5 {main} thrown in /var/www/html/wordpress/wp-content/plugins/all-in-one-wp-migration-file-extension/lib/controller/class-ai1wmte-main-controller.php on line 131
    确认少了一个常量,可能是版本不兼容问题,故在
    /var/www/html/wordpress/wp-config.php手动补一个

    define('AI1WM_MAX_FILE_SIZE', '1024000000');
  4. wordpress更新/安装插件需要ftp的解决
    wordpress所在目录为777权限,可以不需要ftp服务器

进入/var/www/html/wordpress/wp-content目录,新建tmp文件夹,设置文件夹的权限为777
在/var/www/html/wordpress/wp-config.php中添加下列代码:
define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);/ WordPress的临时目录。/
define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

最后的代码应该是:

if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');
define('WP_TEMP_DIR', ABSPATH.'wp-content/tmp');
define("FS_METHOD", "direct");  
define("FS_CHMOD_DIR", 0777);  
define("FS_CHMOD_FILE", 0777); 

参考资料

  1. https://www.seo628.com/2761.html
  2. https://docs.lsky.pro/docs/enterprise/v1/quick-start/migration.html
  3. https://www.niuqi360.com/wordpress/how-to-enable-wpdebug-in-wordpress/

阿笨,可以用腾讯云的制作镜像迁移。