2016-07-27 8 views
2

Я сделал очень простое приложение с простым базовым миром GET конечной точки.Тонкая оконечная точка работает с собственным сервером php, но не nginx

<?php 

require 'vendor/autoload.php'; 

$app = new Slim\App(); 

$app->get('/hello/{name}', function ($request, $response, $args) { 
    $response->write("Hello, " . $args['name']); 
    return $response; 
}); 

$app->run(); 

Конечная точка/hello/world работает так, как предполагается, когда я запускаю ее с встроенным сервером PHP. Но не с nginx. Я получаю 404 не найден.

Мой nginx_vhost (/ и т.д./Nginx/сайты-доступные/nginx_vhost) файл выглядит следующим образом:

server { 
    listen 80; 
    server_name localhost; 

    root /var/www/; 
    index index.php index.html; 

    # Important for VirtualBox 
    sendfile off; 

    location/{ 
     try_files $uri $uri/ =404; 
    } 

    location ~* \.php { 
     include fastcgi_params; 

     fastcgi_pass unix:/var/run/php5-fpm.sock; 

     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_cache off; 
     fastcgi_index index.php; 
    } 
} 

Где я буду неправильно?

ответ

1

Вам необходимо изменить файл nginx_vhost, чтобы разрешить передачу аргументов Slim по мере необходимости.

Взятые из их Documentation:

server { 
    #..... 

    location/{ 
     try_files $uri $uri/ /index.php$is_args$args; 
    } 

    #.... 
}