【问题标题】:laravel 5 heroku 404 not found ngixlaravel 5 heroku 404 未找到 nginx
【发布时间】:2015-08-18 14:56:48
【问题描述】:

我在尝试将 Laravel 5 应用程序部署到 Heroku 时遇到了一个非常奇怪的错误。如果我尝试访问我的根域https://my-app.herokuapp.com 它工作正常。但是,如果我尝试访问 /https://my-app.herokuapp.com/api/v1/users 的其他域,它会给我一个 404 未找到。 Heroku 实际上是在尝试转到文件夹 /api/v1/users 而不是读取路由文件。

这是我的 Procfile:

web: vendor/bin/heroku-php-nginx public/

现在,如果我尝试同样的事情,但使用 apache 服务器,它可以正常工作:

web: vendor/bin/heroku-php-apache2 public/

【问题讨论】:

  • 你找出问题所在了吗?我还尝试使用 /api 资源控制器部署 Laravel 4 应用程序,但在访问 / 以外的其他页面时出现错误 404

标签: php laravel heroku deployment


【解决方案1】:

https://devcenter.heroku.com/articles/custom-php-settings

使用自定义应用程序级别的 Nginx 配置

在 Heroku 在 Nginx 启动期间使用的默认服务器级配置文件中,它包含一个非常简单的默认应用程序级配置文件。您可以将此文件替换为您的自定义配置。例如,要配置 Nginx 为您的 Symfony2 应用程序使用一些重写规则,您需要在应用程序的根目录中创建一个 nginx_app.conf,其内容如下:

location / {
    # try to serve file directly, fallback to rewrite
    try_files $uri @rewriteapp;
}

location @rewriteapp {
    # rewrite all to app.php
    rewrite ^(.*)$ /app.php/$1 last;
}

location ~ ^/(app|app_dev|config)\.php(/|$) {
    try_files @heroku-fcgi @heroku-fcgi;
    internal;
}

对于 laravel。

在根目录下创建nginx_app.conf:

location / {
    # try to serve file directly, fallback to rewrite
    try_files $uri @rewriteapp;
}

location @rewriteapp {
    # rewrite all to app.php
    rewrite ^(.*)$ /index.php/$1 last;
}

location ~ ^/(app|app_dev|config)\.php(/|$) {
    try_files @heroku-fcgi @heroku-fcgi;
    internal;
}

在 Procfile 中:

web: vendor/bin/heroku-php-nginx -C nginx_app.conf /public

【讨论】:

  • 这对我来说是非常有用的答案。现在我没有收到 404 错误。所以,谢谢。
  • 刚刚让我头疼不已,谢谢未来
  • 我只是想知道为什么您的答案没有被选为正确的答案。
【解决方案2】:

如果你想在 heroku 和 laravel 中使用 nginx,你需要在你的公共文件夹中添加一个 nginx_app.conf,然后添加这个:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

这就是您的Procfile 的外观:

web: vendor/bin/heroku-php-nginx public/

【讨论】:

    【解决方案3】:

    http://laravel.com/docs/4.2/installation#pretty-urls找到解决方案

    我也有同样的问题。基本上,我只是在 /public 文件夹中添加了 .htaccess 文件,现在一切正常。

    【讨论】:

    • 谢谢你我想出的唯一解决方案是让它成为一个 apache 服务器
    猜你喜欢
    • 2018-11-06
    • 2018-09-26
    • 1970-01-01
    • 2016-06-23
    • 2016-12-27
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多