NexusPHP 网站搬家

备份数据

首先,备份源网站数据。如果没有使用第三方备份工具,可以在网站根目录下执行以下命令进行备份:

# 备份网站数据
php artisan backup:web
# 备份数据库
php artisan backup:database
# 或者一次性备份网站数据和数据库
php artisan bakcup:all

生成的数据在 /tmp 目录,下载并上传到新服务器上。

导入数据

接下来在新服务器上,安装好符合要求的 Nginx + PHP + MySQL + Redis 环境。创建跟源网站同名的数据库,一样账号密码的数据库账号,并导入数据。如果使用不同的账号密码,记得修改 .env 文件。

# 创建数据库 demo.nexusphp.org
create database `demo.nexusphp.org` default charset=utf8mb4 collate utf8mb4_general_ci;

# 创建数据库账号 demo.nexusphp.org, 密码为 A3sra9kPxxBZ4BkreZLz
create user 'demo.nexusphp.org'@'127.0.0.1' identified by 'A3sra9kPxxBZ4BkreZLz';
grant all privileges on `demo.nexusphp.org`.* to 'demo.nexusphp.org'@'127.0.0.1';
flush privileges;

# 导入数据
source /tmp/demo.nexusphp.org.database.20220813.040712.sql

配置网站

如果需要源网站不受影响,可以先配置一个新的域名。如果源网站停机,则使用原域名。这里以使用新域名为例。记得将新域名解析到新服务器上。

将源网站的网站配置文件上传到新机器,修改其中 server_name 为新域名。如果有依赖主配置文件,记得将主配置文件一并上传并使用。相关路径如有不同,记得修改。

接下来,安装依赖,自带命令备份的数据不包含依赖,如果第三方备份已经包含则可以省略。安装完成后尝试访问,如果没有报 500 之类错误,那就是成功了。如有错误,检查网站目录权限以及日志目录 /tmp 的权限问题,以及查看日志进行排查。

这里由于使用了新域名(使用源域名不会有此问题),跳转登录页会跳转到源网站上去。修改 settings 表将域名相关项修改(这里姑且认为源为 demo,新的为 demo2 ):

update `settings` set `value` = replace(`value`, 'demo.nexusphp.org', 'demo2.nexusphp.org') where `value` like '%demo.nexusphp.org%';

修改后测试是否正常。

一切正常后,再将这个配置修改回去:

update `settings` set `value` = replace(`value`, 'demo2.nexusphp.org', 'demo.nexusphp.org') where `value` like '%demo2.nexusphp.org%';

最后修改域名解析,将源域名解析到新服务上即可。新域名的解析可以删除。这里,源网站产生了新数据,如果觉得必不可少,可以将源网站停服,重新走一遍上边的流程。

至此,NexusPHP 网站搬家全部完成。

发表评论

您的电子邮箱地址不会被公开。