已将 Laravel 应用程序部署到共享主机并出现“500 | 服务器错误”

Deployed Laravel app to shared hosting and get a "500 | Server Error"

首先请允许我说是的,我已经查看了与此相关的其他类似问题,虽然他们有一个与他们的代码有内在联系的问题,但我在本地机器上完全没问题。话虽如此,我部署了一个 Laravel e-commerce store 到我的共享主机帐户,同时遵循所有常见的待办事项清单,即清除缓存、路由、视图、composer autoload -dev 等,并立即收到提到的错误。查看第一个错误下方的日志对我来说没有意义,因为我已将 .env DB 凭据从 localhost 的默认值更改为我在服务器上创建的凭据。我还确认它们没有硬编码在 config/database.php 文件中,所以尽管如此,任何人都可以帮助我理解这个日志文件。第一行对我来说特别没有意义,但问题可能出在其他地方。

我也不知道这是否相关,但出现在我的 public 文件夹中的日志将其文件名作为应用程序在我本地计算机上的位置,即 C:\workspace\portfolio\shop\storage\logs 所以也许它路径问题?不知道这是否有帮助,但我提供了更多信息等等。

编辑:所以不允许我在此处 post 完整的 51 行日志,所以如果它可以帮助我 post 将其编辑为 my website

[2021-05-05 17:16:44] production.ERROR: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from `shoes` where `tag` = Best Seller) {"exception":"[object] (Illuminate\Database\QueryException(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from `shoes` where `tag` = Best Seller) at /home/cruftedc/shushop/vendor/laravel/framework/src/Illuminate/Database/Connection.php:678)
[stacktrace]

可能没有关系,但我自己的服务器以某种方式从日志文件中删除了文件权限。在这一点上,我假设我设置了错误的权限。

Quickfix 将专门针对日志文件执行 chmod 775。

更好的解决方案是检查存储目录的所有权,因为它还会产生一些其他令人头疼的文件、权限等...

正如@apokryfos 在问题下的评论中提到的,解决方案只是删除 bootstrap/cache 中包含的文件,除了 .gitignore 然后 运行 命令 php artisan config:cache 在你的服务器而不是本地。这就是让我拥有以本地计算机位置作为名称的日志文件夹的原因。

删除这些文件确实解决了问题,虽然应用程序运行速度较慢,但​​ 运行上面的命令确实有帮助。希望这对将来的其他人有帮助。祝大家编程愉快✌️