我刚刚开始使用 Laravel,并在文档中注意到它建议您将应用程序文件移到文档根目录之外,只有 /public
的内容可以访问。好的,好的,所以我已经做到了。但是,在 /public/index.php
中查看它是硬编码将一个目录指向 /bootstrap
目录。由于我已将框架代码移至其他位置,因此我将文件稍微修改为:
$app_path = $_SERVER['DOCUMENT_ROOT'].'/../securefiles/myApp/';
...
require $app_path.'/bootstrap/autoload.php';
... etc ...
这是预期的做法吗?这个文件需要在 Laravel 加载之前正确设置,所以我不认为我可以配置 Laravel 本身来知道它相对于 /public/index.php
的存储位置。我很好奇是否还有其他更好、更合适的方法?
最佳答案
不,那不是他们的意思。它们意味着您需要指向虚拟主机以使用 public
作为 DOCUMENT_ROOT
,同时保持结构的其余部分不变。所以你会看到这样的东西:
projectname/
app/
bootstrap/
public/
然后 apache/nginx/lighthttpd 虚拟主机配置会将 DOCUMENT_ROOT
设置为 /path/to/projectname/public
。因此,除了您的服务器配置之外,实际上不需要更改任何其他内容。这通常是如何完成的。 Apache 示例:
<VirtualHost *:80>
DocumentRoot "/path/to/projectname/public"
ServerName yoursite.com
ServerAlias www.yoursite.com
</VirtualHost>
关于Laravel:支持更改框架/应用程序文件夹位置的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17306814/