Laravel 上线最佳实践到底是怎么样的?

学习 Laravel 一段时间了,现在最大一点疑惑在项目部署上。

云服务器基础软件安装没什么问题,因为直接用 summer 的脚本,都自动配置好了。

问题在如何把项目上线运行。我自己是用 Git 直接把代码从 Github 上拉到服务器 Web 目录上,然后配置一下 .env 和运行几个 artisan 命令。

但线上和本地总是有不同,有时是目录权限问题(例如 storage 权限),有时是其他问题,总是要调一下才能顺利运行。问题是我现在只会一个方法来调试:就是在线上打开 debug 选项。但这样 Laravel 会把 env 里的内容全暴露出来(mysql 用户、密码,还有一些包的 account 和 key 等等)!!别人如果刚好访问了,安全问题巨大啊!!如果不打开 debug 吧,页面就空白只显示一句 something went wrong 的英文,根本不知道哪里出错了。看 storage 里的 laravel.log 又很不直观,看不出来。

大家上线遇到问题是怎么调试的呢?直接打开 debug,虽然能显示出错内容,但服务器秘密都被暴露出来了。不打开 debug ,那怎么知道出错地方在哪里?

或者说项目上线的最佳实践是怎样的?既能安全调试,又不会把服务器信息暴露出去?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

到云管理控制台设置 ip 访问权限。
查看日志

5年前 评论

@DavidNineRoc 感谢,控制 IP 访问权限看起来是比较可行的方法。查看日志 我真的看不懂错误在哪,我设置的 APP_LOG_LEVEL 等级是 debug,在 Laravel.log 日志大部分是调用堆栈内容,眼花而且找不到错误在哪。。。

5年前 评论

laravel.log 很容易找啊 :joy:
线上开debug怕是不想混了

5年前 评论

Deployer一键部署

file

至于调试的问题,我觉得的laravel.log里面的还是可以看出错误在哪的,而且一般线下测试没问题,线上也很少会出问题

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!