本地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

相关推荐
搜搜秀2 小时前
find指令中使用正则表达式
linux·运维·服务器·正则表达式·bash
Archie_IT4 小时前
修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图
运维·服务器·前端·git·深度学习·npm·conda
无名之逆4 小时前
[特殊字符] Hyperlane:为现代Web服务打造的高性能Rust文件上传解决方案
服务器·开发语言·前端·网络·后端·http·rust
我是小木鱼6 小时前
浅析Centos7安装Oracle12数据库
linux·运维·服务器·数据库
Pluto & Ethereal7 小时前
新手宝塔部署thinkphp一步到位
运维·服务器·阿里云·php·腾讯云
wusam7 小时前
Linux系统管理与编程12: FTP服务配置
linux·运维·服务器
无极程序员8 小时前
远程主机可能不符合glibc和libstdc++ VS Code服务器的先决条件
android·java·运维·服务器·php
周Echo周8 小时前
7、linux基础操作2
linux·运维·服务器
#岩王爷9 小时前
Ajax------免刷新地前后端交互
前端·javascript·ajax·php