2015-06-04 4 views
0

Я получаю довольно странную ошибку при попытке развернуть приложение Laravel 5 в Heroku. Если я попытаюсь получить доступ к моему корневому домену https://my-app.herokuapp.com, он отлично работает. Однако, если я попытаюсь получить доступ и другой домен, то есть / что-то aka https://my-app.herokuapp.com/api/v1/users это дает мне 404 не найден. Heroku на самом деле пытается перейти в папку/api/v1/users вместо чтения файла маршрутов.laravel 5 heroku 404 не найден ngix

вот мой PROCFILE:

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

теперь, если я попробовать то же самое, но с сервером апача он работает отлично:

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

+0

ли вы выяснить, в чем проблема? Я также попробовал развернуть приложение Laravel 4 с контроллером ресурсов/api, но получаю ошибку 404 при доступе к другим страницам, чем/ – schystz

ответ

0

Найдено решение по http://laravel.com/docs/4.2/installation#pretty-urls

У меня такая же проблема. В принципе, я просто добавил файл .htaccess в/общую папку, и теперь все работает.

+0

Спасибо, единственное решение, с которым я столкнулся, - сделать его сервером Apache – ThreeAccents

0

Если вы хотите использовать Nginx с Heroku в Laravel вам нужно добавить nginx_app.conf к вам папки, а затем добавьте это:

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

И это, как ваш Procfile должен выглядеть:

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

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 
Смежные вопросы