【问题标题】:Laravel Change Path ContextLaravel 更改路径上下文
【发布时间】:2018-10-16 05:28:36
【问题描述】:

我有 Laravel(5.7) 项目,将部署到具有多个项目的服务器 (nginx)。我正在使用 Apache 在我的本地机器上运行该项目,我尝试使用子目录运行它,它正在我的机器上运行。

我们在服务器(nginx)的子目录中部署我的项目时遇到问题,我不知道 Laravel 项目是否有问题,因为每次我们转到我的项目的 http://172.1.1.1/sample 它总是显示“ Laravel 的 404 Page not found”,因为 Laravel 认为 /sample 是一条路径,所以我认为 172.1.1.1/sample 运行 Laravel 但它并没有将 /sample 作为它的根目录,但是当我们转到 172.1.1.1 时,另一个项目正在运行这里正在工作。我已经做的是在我的 Laravel 项目中添加以下代码。

在我的 AppServiceProvider.php - 我添加以下代码:

public function boot()
{

       \URL::forceRootUrl(\Config::get('app.url'));   

        if (str_contains(\Config::get('app.url'), 'https://')) {
            \URL::forceScheme('https');
            //use \URL:forceSchema('https') if you use laravel < 5.4
        }
    }

这样当我在项目的 .env 中更改 APP_URL 时,它就会起作用。

APP_URL=http://localhost:9021/sample

并在我的公用文件夹的 .htaccess 中添加以下内容:

RewriteEngine On
RewriteBase /sample/

所以它适用于我的本地机器,但是当我们尝试部署它时它不起作用。一旦我们转到 172.1.1.1/sample (sample-ip),它只会显示“404 Page not found”。

我想知道是否有其他方法可以更改 laravel 5.7 的上下文路径。因为我不是在服务器中配置 nginx 的人,但我想确保问题不是因为 Laravel 5.7。

感谢你们的帮助。

【问题讨论】:

  • 这个问题可以用虚拟主机解决
  • 如何解决@ShaielndraGupta 先生?我的意思是我在 Laravel 中的配置是否正确,还是我需要在 Laravel 中更改某些内容?我只是想确保 Laravel 的配置没问题,因为我不是处理 nginx 配置的人。谢谢先生。
  • 想要http://localhost:9021/sample 作为您的基本路径,因为您可以在单台机器上运行多个项目..??
  • 服务器中有多个项目。所以项目 1 在localhost:9021 中运行,然后我们将在localhost:9021/sample 中部署我的项目。所以我的 Laravel 项目的根文件夹是localhost:9021/sample。但是发生的事情是 Laravel 将 /sample 视为路由路径,因此它返回“404 Page not found”。
  • 将您的 nginx 配置为使用 localhost:9022 代替您的项目。 APP_URL 只能包含APP_URL=localhost:9022等域名

标签: php laravel nginx laravel-5.7


【解决方案1】:

查看此文档

laravel with nginx

【讨论】:

  • 但是如果项目在子目录中怎么办。然后在 nginx.conf 中我们只需添加location /sample {} 对吗?我还需要在 Laravel 中配置一些东西吗?
  • 现在这不是 laravel 的工作方式,你必须分离你的项目并制作一个指向该项目公用文件夹的配置文件
  • 什么意思?我们的配置指向 laravel 文件夹的 public。所以我们有这个location /sample {} - 当我们访问location:9022/sample 时,laravel 将其读取为 laravel 路由而不是 laravel 根目录。
  • 我应该把所有公共文件放到/sample文件夹吗?然后是其余的 laravel 文件 - 我将创建“laravel”文件夹,所以我现在将拥有 - (其余的 laravel 文件) - (所有公共文件)然后我将只编辑索引。 php 在公共文件中并将其指向 laravel 文件夹?
猜你喜欢
  • 2019-01-17
  • 1970-01-01
  • 2017-10-28
  • 2018-08-17
  • 2021-10-24
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多