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

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

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

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

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

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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

Deployer一键部署

file

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

6年前 评论

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

6年前 评论

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

6年前 评论

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

6年前 评论

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