CARLOS B. Asked: 2020-06-21 15:28:05 +0800 CST 2020-06-21 15:28:05 +0800 CST 2020-06-21 15:28:05 +0800 CST 如何在没有 SSH 的情况下将 laravel 5.2 项目上传到共享主机子域? 772 您好,我需要知道如何将 laravel 5.2 项目上传到共享主机中的子域 laravel 1 Answers Voted Best Answer CARLOS B. 2020-06-29T20:33:17+08:002020-06-29T20:33:17+08:00 用例 1 在第一个用例中,最常见;假设我需要将我的项目上传到我网站的根目录,即“www.example.com”中,我们知道这个根目录在大多数情况下是一个名为public_html 的文件夹。 现在我们接下来需要做的是复制我们刚刚上传的公共文件夹中的所有文件,并将它们放在 public_html 中。这样,将存在的 index.php 将成为我们在 Laravel 中的应用程序之一。 将 Laravel 项目上传到共享服务器 这样,shared_project/public 中的所有内容现在都在我们的 public_html 目录中。 接下来我们需要做的是编辑 index.php 文件,我们现在需要在其中指向一个新的 require 路径。在此文件中,您必须查看以下行(现在为第 22 行和第 36 行) require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; 对于此示例,您必须将它们更改为指向它们当前所在的位置(应该注意,您可以将文件定位在最适合您的位置)。 require __DIR__.'../proyecto_compartido/bootstrap/autoload.php'; $app = require_once __DIR__.'../proyecto_compartido/bootstrap/app.php'; 这样,当进入我们的域名 www.example.com 时,至少应该会抛出一个 Laravel 错误。尽管这样做应该已经对您有用。 用例 2: 如果您需要上传项目而不是在域的根目录中,而是在文件夹中,可能是因为您安装了 WordPress 或其他原因。与其将公共文件复制到 public_html 中,不如将它们复制到单独的文件夹中。 例如,如果您希望它位于 www.example.com/laraveles 中,则必须从项目中剪切公用文件夹并将其粘贴到 public_html 目录中,然后根据需要重命名,如果重命名为 laraveles,您将能够访问/laraveles。 其余步骤大家都一样,只需要查看index.php里面的路由主题 如何组织文件夹是您的决定,这取决于您感觉如何更有条理。您只需要注意所有内容都已正确声明,以免路线失败。 编辑服务提供者 如果万一你的 JS 和 CSS 文件没有加载,这是因为我们已经移动了公共文件夹的位置,这可以通过告诉 Laravel 一个新的公共路径来解决。 这是在 ServiceProvider 内部,例如我们使用了 AppServiceProvider,在 register 方法中你必须放置你的新路由。 $this->app->bind('path.public', function() { return base_path('public_html'); }); 有了这个应该可以解决,如果没有,你就犯了一个严重的错误,使用相对路径来加载你的资源,而不是像asset()那样使用Laravel帮助程序。 上传数据库 由于我们无法执行迁移,很遗憾我们将不得不像 90 年代那样上传我们的数据库。也就是说,通过将数据库转储到本地,登录到您的 phpMyAdmin 并将转储导入其中。我认为这不是很复杂,所以我认为没有必要详细说明这一点,但如果您有任何疑问,请在评论中留下。 设置环境变量 让我们记住,在我们的 .env 文件中,我们的应用程序工作的重要配置的一部分,您必须在其中放置应用程序的配置,您对数据库的访问数据,以及如果您要使用邮件服务,放置数据。 APP_ENV=production APP_KEY=base64:vmtSju7wP3qbPMMK1PkEtHuamgJCM5RGoLcSwrreZLA= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://example.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=8889 DB_DATABASE=proyecto_compartido DB_USERNAME=root DB_PASSWORD=deprecado
在第一个用例中,最常见;假设我需要将我的项目上传到我网站的根目录,即“www.example.com”中,我们知道这个根目录在大多数情况下是一个名为public_html 的文件夹。
现在我们接下来需要做的是复制我们刚刚上传的公共文件夹中的所有文件,并将它们放在 public_html 中。这样,将存在的 index.php 将成为我们在 Laravel 中的应用程序之一。
将 Laravel 项目上传到共享服务器
这样,shared_project/public 中的所有内容现在都在我们的 public_html 目录中。
接下来我们需要做的是编辑 index.php 文件,我们现在需要在其中指向一个新的 require 路径。在此文件中,您必须查看以下行(现在为第 22 行和第 36 行)
对于此示例,您必须将它们更改为指向它们当前所在的位置(应该注意,您可以将文件定位在最适合您的位置)。
这样,当进入我们的域名 www.example.com 时,至少应该会抛出一个 Laravel 错误。尽管这样做应该已经对您有用。
如果您需要上传项目而不是在域的根目录中,而是在文件夹中,可能是因为您安装了 WordPress 或其他原因。与其将公共文件复制到 public_html 中,不如将它们复制到单独的文件夹中。
例如,如果您希望它位于 www.example.com/laraveles 中,则必须从项目中剪切公用文件夹并将其粘贴到 public_html 目录中,然后根据需要重命名,如果重命名为 laraveles,您将能够访问/laraveles。
其余步骤大家都一样,只需要查看index.php里面的路由主题
如何组织文件夹是您的决定,这取决于您感觉如何更有条理。您只需要注意所有内容都已正确声明,以免路线失败。
编辑服务提供者
如果万一你的 JS 和 CSS 文件没有加载,这是因为我们已经移动了公共文件夹的位置,这可以通过告诉 Laravel 一个新的公共路径来解决。
这是在 ServiceProvider 内部,例如我们使用了 AppServiceProvider,在 register 方法中你必须放置你的新路由。
有了这个应该可以解决,如果没有,你就犯了一个严重的错误,使用相对路径来加载你的资源,而不是像asset()那样使用Laravel帮助程序。
上传数据库
由于我们无法执行迁移,很遗憾我们将不得不像 90 年代那样上传我们的数据库。也就是说,通过将数据库转储到本地,登录到您的 phpMyAdmin 并将转储导入其中。我认为这不是很复杂,所以我认为没有必要详细说明这一点,但如果您有任何疑问,请在评论中留下。
设置环境变量
让我们记住,在我们的 .env 文件中,我们的应用程序工作的重要配置的一部分,您必须在其中放置应用程序的配置,您对数据库的访问数据,以及如果您要使用邮件服务,放置数据。