magento2 确实是牛的系统,框架板块的灵活性和强大是毋庸置疑的,其安装,迁移和维护多少是需要点技术知识的,但都说熟能生巧,知道套路,会百度,积累,询问和尝试,总归能搞定的,那么废话不多说,以下对于magento2的整站迁移做归纳总结:
运行环境:linux +nginx+mysql的基本配置,PHP7.2
服务器:阿里云ECS
操作平台:宝塔,关于服务环境和宝塔的搭建,这里具体就不详细讲了
一,打包好数据库和项目文件,数据库是SQL格式,可直接从PHPMYADMIN中导出
二,上传数据库文件和项目文件,到你要迁移的服务器中(先可以不用修改数据库和项目文件的内容)
三,配置好域名和数据库的修改
1,域名如果要修改,可在数据库文件中找到文件:mgck_core_config_data ,可直接修改或语句执行修改你的新域名,记得域名后面加 “/”
2,可解决CSS样式不加载的问题
a,执行数据库命令:
insert mgck_core_config_data (config_id, scope, scope_id, path, value) values (null, ‘default’, 0, ‘dev/static/sign’, 0);
b,在SSH导向CD magento2根目录运行CLI命令:
php bin/magento setup:static-content:deploy -f
php bin/magento indexer:reindex
c,删除magento2跟文件夹下的var目录:
rm -rf var/*
3,对照修改数据库名和密码,连接站点,可在app/etc目录下的文件:env.php 进行修改即可;
4,如果修改密码:找到项目目录下app/etc/env.php,找到crypt对应的key参数
连接mysql客户端选择当前使用的数据库。
执行以下sql语句,参数替换为你的参数
UPDATE admin_user SET password = CONCAT(SHA2(‘xxxxxxxYourNewPassword’, 256), ‘:xxxxxxx:1’) WHERE username = ‘admin’;
参数说明:
“xxxxxxx” 为第一步的key对应的参数
“YourNewPassword” 为新密码
“admin” 为忘记密码的用户名,可根据实际所需更改
执行成功后清理magento缓存
三,宝塔用WWW用户进行执行,如果是ROOT用户,则需要切换到www执行,如下:
1,root用户角色进入,执行命令:vim /etc/passwd,打开文件,找到www用户,修改内容www:x:1000:1000::/home/www:/bin/bash ,i编辑,ecs退出编辑,然后保存 :wq ;强力保存 :wq!
2,执行命令:线上环境恢复:vim ~/.bashrc ,打开保存
3,执行命令:alias www=’cd /www/wwwroot/ && sudo su – www -s /bin/bash’
4,执行命令:source ~/.bashrc
5,执行命令:root用户转www用户,命令:www,直接输入即可调换用户,下一次需要执行命令: su www
6,还有不能禁用一些函数比如syslog,openlog,exec,system,syformlink,proc_open,putenv函数,否则会提示错误,在php.ini中修改
7,注意内存大小,调整到512M,甚至1024,如运行下列命令时的要求:php bin/magento deploy:mode:set production
8,有错误问题请详细查看,或查看错误日志:/www/wwwroot/目录/var/log
四,运行以下命令更新,可以不用sudo
sudo php bin/magento maintenance:enable
sudo php bin/magento cache:clean
sudo php bin/magento setup:upgrade
sudo php bin/magento setup:di:compile
sudo php bin/magento bms_advancedstock:flush_stock_index
sudo php bin/magento indexer:reindex
sudo php bin/magento setup:static-content:deploy 部署magento的静态内容
sudo php bin/magento cache:clean
sudo php bin/magento deploy:mode:set production
sudo php bin/magento maintenance:disable
五,完成,打开站点
其中,宝塔中伪静态处理:
location / {
index index.HTML index.php; ## Allow a static html file to be shown first
try_files $uri $uri/ @handler;
expires 30d;
}
location /var/export/ { ## Allow admins only to view export folder
auth_basic “Restricted”; ## Message shown in login window
auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
autoindex on;
}
location /. { ## Disable .htaccess and other hidden files
return 404;
}
location @handler { ## Magento uses a common front handler
rewrite / /index.php;
}
location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
rewrite ^(.*.php)/ $1 last;
}
支持