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

文章目录


前言

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

相关推荐
BingoGo12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair2 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean3 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩3 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
BingoGo3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·laravel