文章目录
前言
laravel新手记录
差不多一个月,总算用laravel把商城小程序开发好了【这个后面可以直接把代码分享出来】
一直在本地开发,现在需要部署到服务器上面和前端联调了
记录一下部署流程和遇到的问题
主要工具:
liunx服务器,已经安装宝塔或者lnmp环境
navicat(用于数据库迁移通过备份还原)
一、部署流程
1、数据库搬迁
把本地数据复制到服务器上面
方法很多,可以导出成sql在执行,我之前用的的中简单粗暴的方式,就是偶尔报错吧,并且执行时间很长,数据库很大还可能失败
最近发现navicat是可以备份一个数据库,然后在另一个数据库里面还原,前提是两个数据库名一样
【只有navicat学习交流版可以备份还原,navicat免费版不行】
具体操作:
先把本地数据库备份
顺便说下mysql5.7如何开启root账号远程登陆
找到mysql.user表,把root前面的host值,从localhost改成:%
这样表示允许所有ip访问了
改完后执行【FLUSH PRIVILEGES;】刷新权限
然后链接服务器数据库,新建一个一模一样的数据库,也备份一下
最后把本地备份的这个备份文件拷贝到服务器备份文件路径里面,选择这个本地备份,还原备份即可,这种方式需要本地和远程mysql版本一致
2、宝塔创建网站,配置php
由于我用的框架dcat-admin是比较新的代码【相对现在好像很老了】,需要安装php8.2
安装好了之后安装fileinfo扩展,好像装上就自己开启了
宝塔新建网站,选择php8.2创建,运行目录设置到public,或者网站目录直接设置到public,我感觉应该差不多吧?
这个防跨站攻击感觉可以关了,后面可能会报错,因为我们需要访问public目录之外的文件
3、修改nginx配置
可以设置伪静态,也可以直接在网站的nginx配置文件这里加上这一行
location / {
try_files $uri $uri/ /index.php?$query_string;
}

如果没有这个,访问网站就会返回404
4、在public目录设置软连接
默认后台上传图片是存储在这个目录的
/www/wwwroot/你的网站.cn/storage/app/public
但是我们网站运行目录是public目录,也就是和storage同级,可以创建一个软连接解决
有3种方式,前两种可能报错或者失败,第3种包成功
1、在网站根目录执行:php artisan storage:link
然后我报错了,说我php没有安装PHP的symlink模块,懒得装了,看第二种
2、使用命令:ln -s storage/app/public public/storage
没报错,但是路径不对,最好用完整路径,我当时没注意
3、直接去宝塔后台手动创建:
这个本质就是第二种,不过变成图形化操作了。
成功后会有这个特殊文件夹出现,这时直接访问/storage就是访问storage/app/public
解决很多图片路径问题导致404的情况
5、修改env配置、刷新缓存
这个时候打开你的env配置,把mysql链接密码改好、域名配好。
在网站根目录下执行这些,刷新所有缓存
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
//重启消息队列,如果更新了模型,消息队列使用了模型,就需要重启这个,重启nginx都没用
php artisan queue:restart
二、其他问题
1.后台登陆失败问题
env配置不开启https,网站通过https访问,但是请求登陆接口会使用http,这时候会出现跨域问题。
如果网站已经申请了https证书,就把配置文件也开启https,就可以了
如果你的dcat-admin版本也是:"dcat/laravel-admin": "2.*",
config文件夹里面文件都是默认值
可以参考这个env配置:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=false
ADMIN_HTTPS=false
APP_URL=http://xinhu.com
IMAGE_URL='http://xinhu.com/storage'
#后台路由域名
ADMIN_ROUTE_DOMAIN=""
#后台路由前缀-加前缀后需要执行命令清除路由缓存
ADMIN_ROUTE_PREFIX=""
#后台域名
ADMIN_DOMAIN=""
不要小瞧ADMIN_ROUTE_PREFIX="",之前没注释,我随手就填了我的域名,就没管了,干其他的去了,然后就出bug,菜单栏不见了,折磨了我1天时间,最后重新拉代码部署才好,然后一个一个排查才发现是这个配置项搞得鬼......
2.完美解决接口跨域问题

总结
话说现在在学dcat-admin算不算49年入国军,作者都跑路了,看官网都噶啦,文档、社区帖子也都是3年前的了。
本来用的thinkphp的,然后一个月前去官网想看个文档,才发现,现在看个文档都收费,新版的8收费就算了,甚至之前免费开源的3、5、6文档都收费,太离谱了就换laravel框架了。
刚刚去看,现在又可以免费看文档了,甚至thinkphp8都可以免费看了,不过感觉他们收费免费太随意了,喜欢瞎搞,先用着dcat-admin吧
好在还是留下了很多好用的插件,整个项目也很完善了,用起来还是嘎嘎不错的
下次分享一些好用的扩展和安装修改,比如日志查扩展引用cdn老是失效搞得访问界面错位
dcat-admin官方文档:https://learnku.com/docs/dcat-admin/2.x/use-of-fields/8107#162e7c
dcat-admin扩展集合:https://learnku.com/articles/70305