我刚刚开始玩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
的存储位置。我只是好奇,但是,如果有另一种更好,更合适的方法吗?
答案 0 :(得分:4)
不,那不是他们的意思。它们意味着您需要指定虚拟主机使用public
作为DOCUMENT_ROOT
,保留结构的其余部分。所以你会看到这样的东西:
projectname/
app/
bootstrap/
public/
然后apache / nginx / lighthttpd virtualhost配置会将DOCUMENT_ROOT
设置为/path/to/projectname/public
。因此,除了服务器配置之外,没有必要更改任何其他内容。这通常是它的完成方式。 Apache示例:
<VirtualHost *:80>
DocumentRoot "/path/to/projectname/public"
ServerName yoursite.com
ServerAlias www.yoursite.com
</VirtualHost>