gpt4 book ai didi

Laravel 出服务器根目录

转载 作者:行者123 更新时间:2023-12-04 11:48:29 28 4
gpt4 key购买 nike

我在 Laravel 的文档中找到了以下部分。

“Laravel 应该始终在为您的 Web 服务器配置的“Web 目录”的根目录之外提供服务。您不应该尝试从“Web 目录”的子目录中提供 Laravel 应用程序。尝试这样做可能会暴露敏感文件出现在您的应用程序中。”

这是否意味着它应该始终直接在根目录中,而不是在子目录中或其他方式中?

如果我的服务器提供商给了我根目录怎么办 /并告诉我将我的文件放入 /www ?

那么它会使其变得脆弱吗?

最佳答案

我不同意@Jean-Roch B. 的上述回答,并同意@Tpojka 的评论。

If the root of the "web directory" on your server is /var/www you should put Laravel in that folder


不。根目录( DocumentRoothttps://httpd.apache.org/docs/2.4/mod/core.html#documentroot 定义)旨在允许 HTTP 服务器向客户端递归提供文件。这意味着不能向客户端提供 sibling 和递归父目录。
这是什么意思?如果你将 Laravel 递归地放在根目录下,就会出现安全问题。例如,配置和环境文件、您的 Controller 、您的迁移文件等,如果后者要求,将提供给客户端。
通过说以下内容:

Laravel should always be served out of the root of the "web directory" configured for your web server. You should not attempt to serve a Laravel application out of a subdirectory of the "web directory". Attempting to do so could expose sensitive files present within your application.


, Laravel 文档说不要将 Laravel 目录递归地放在文档根目录下。 你绝对必须将 Laravel 目录递归地放在文档根目录之上。
带有 Laravel 站点的文档根目录必须仅指向目录 app/public Laravel 目录。
我将引用@Tpojka(见他对 OP 问题的评论),他是绝对正确的:

Nothing outside public directory shouldn't be available to external access. Only public directory should be accessible by externals. Everything else is lot of work on securing application.


另外,再次引用@Jean-Roche B.:

Obviously it's not a good idea to put Laravel in /var/otherdirectory or /otherdirectory


,如果就像他说的那样 /var包含 /var/www ,我认为 Laravel 实际上可以放入 /var , 删除 www ,并将根目录设为 app/public目录(这是一个示例)。
结束: DocumentRoot通常可以在您的 Web 主机配置管理面板中进行配置。

关于Laravel 出服务器根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61635722/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com