2015-02-15 3 views
1

У меня вопрос, где, когда я иду в общедоступном каталоге/он показывает приложение Laravel как обычно, но навигации прочь любые другие страницы результатов в нем говоряLaravel 5 - Nginx/PHP вопрос конфигурации

Нет указанный файл ввода.

Я использую сервер Nginx с PHP 5.5.9 FPM.

Я просматривал google последние 4 часа или около того, глядя на каждую страницу учебника и stackoverflow для перезаписи проблем в Laravel, но все они дают одинаковый результат.

Я даже установил все файлы и папки на 777, чтобы я мог видеть, была ли это какая-то проблема с разрешениями. Я проверил конфигурацию Laravel и все настроено, я не знаю, что не так.

Может ли кто-нибудь указать мне правильное направление?

Последние конфигурации Я попытался ниже:

server { 
    listen 80 default_server; 

    root /usr/share/sites/base; 
    index index.php 
    server_name localhost; 
    location/{ 
      try_files $uri $uri/ /index.php?$args; 
    } 

    location ~ \.php$ { 
      fastcgi_pass unix:/var/run/php5-fpm.sock; 
      include fastcgi_params; 
    } 
} 

Я также пробовал многие другие, такие как:

server { 

      listen   80; 
      server_name  domain.com; 

      root   /usr/share/sites/base; 
      index   index.php; 


      location/{ 

        try_files $uri $uri/ /index.php?$query_string; 

      } 

    if (!-d $request_filename) { 

      rewrite ^/(.+)/$ /$1 permanent; 

    } 


    location ~* \.php$ { 

      # Server PHP config. 
      fastcgi_pass     unix:/var/run/php5-fpm.sock; 
      fastcgi_index     index.php; 
      fastcgi_split_path_info   ^(.+\.php)(.*)$; 

      include       /etc/nginx/fastcgi_params; 
      fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name; 

    } 

    location ~ /\.ht { 
      deny all; 

    } 

    } 

ответ

1

Ошибка «Нет входных файлов указано» не будет почти всегда связана с факт, что неправильный путь был отправлен на php.

Глядя на вашу «последнюю конфигурацию», я вижу, что fastcgi_param SCRIPT_FILENAME не определен в вашем расположении php. Вы должны сначала начать с определения его местоположения:

location ~ \.php$ { 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name 
} 

Кроме того, вы говорите, что вы можете достичь приложение таким образом, это означает, что index.php работает, но не тогда, когда вы изменяете страницу. Поэтому проблема должна исходить от /index.php?$args. Действительно, используя эту строку, если я попытаюсь достичь yourserver.com/test, и если «test» не является файлом в корневом пути, то nginx попытается выполнить запрос /index.php? (У меня был этот вопрос). Вы должны попробовать только с /index.php.

EDIT: Решение заключалось в том, что директива root должна указывать на общую папку Laravel, в этом случае /usr/share/sites/base/public.

+1

А, ваш ответ заставил меня понять, что мне нужно указать/публиковать его в корне, чтобы он работал. Спасибо за вашу помощь! – Matt

+0

О, я думал, что «база» была вашей общей папкой Laravel, даже не подумала об этом! Вы что-то изменили? – Lich4r

+0

Я решил использовать более длинную конфигурацию из двух, не уверен, работает ли первый или нет. – Matt

Смежные вопросы