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

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

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

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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

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

7年前 评论

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

7年前 评论

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

7年前 评论

Deployer一键部署

file

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

7年前 评论

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