云计算百科
云计算领域专业知识百科平台

本地laravel项目【dcat-admin】部署到liunx服务器

文章目录

  • 前言
  • 一、部署流程
    • 1、数据库搬迁
    • 2、宝塔创建网站,配置php
    • 3、修改nginx配置
    • 4、在public目录设置软连接
    • 5、修改env配置、刷新缓存
  • 二、其他问题
    • 1.后台登陆失败问题
    • 2.完美解决接口跨域问题
  • 总结

前言

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

赞(0)
未经允许不得转载:网硕互联帮助中心 » 本地laravel项目【dcat-admin】部署到liunx服务器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!