【发布时间】:2020-02-03 21:32:51
【问题描述】:
我已经使用 CPanel 将 laravel 项目部署到服务器。我已将 websiteA 中的所有公共文件转移到 public_html。它工作正常。目录如下所示。
/home/tuturu
->public_html
->websiteA
->app
->vendor
-> ...
现在我正在尝试将插件域 websiteB 添加到同一台服务器。作为一个 laravel 项目并希望它指向公用文件夹,我看到根文档是public_html/websiteB/public。现在,目录如下所示:
/home/tuturu
->public_html
->websiteB
->app
->vendor
->public
->websiteA
->app
->vendor
-> ...
我还将公用文件夹中的 index.php 更改为:
require __DIR__.'/../public_html/websiteB/vendor/autoload.php';
$app = require_once __DIR__.'/../public_html/websiteB/bootstrap/app.php';
但是当我转到 websiteB 时,它给出了 HTTP 500 错误。提前致谢。
【问题讨论】:
-
将代码放在 public_html 中是一种不好的做法。您应该使用“附加域”并将路径指向您的 index.php 文件所在的文件夹。
-
问题是,public_html里面已经存储了网站A的所有公共文件,例如htaccess和index.php。我应该将 websiteB 的公共文件放在哪里? @DmitriSandler
-
每个站点都应该有自己的“附加域”和自己的文件夹。您可以在您的主目录(包含邮件、php、public_ftp、public_html 等的目录)中创建文件夹 websiteA 和 websiteB。如果您有大量站点,您可能会创建一个更复杂的文件夹结构,以便您可以轻松识别(分组)您的站点。只是不要把它放到 public_html 中。
-
uwh,所以公用文件夹中的文件不必放在 public_html 中?我可以将根文档设置为指向公用文件夹,这样可以吗?
-
Laravel 的公用文件夹应该保留在应用程序中,因为公用文件夹中的文件使用 Laravel 目录结构中其他文件的相对路径。