3

我刚刚开始使用 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. 我只是好奇是否还有另一种更好、更合适的方法?

4

1 回答 1

4

不,那不是他们的意思。它们意味着您需要将虚拟主机指向public用作DOCUMENT_ROOT使结构的其余部分保持不变的情况。所以你会看到这样的东西:

projectname/
  app/
  bootstrap/
  public/

然后 apache/nginx/lighthttpd 虚拟主机配置将设置DOCUMENT_ROOT/path/to/projectname/public. 因此,除了您的服务器配置之外,无需更改任何其他内容。这通常是它的完成方式。阿帕奇示例:

<VirtualHost *:80>
    DocumentRoot "/path/to/projectname/public"
    ServerName yoursite.com
    ServerAlias www.yoursite.com
</VirtualHost>
于 2013-06-25T20:29:58.623 回答