2012-01-13 18 views
18

Estoy intentando configurar el Framework PHP Laravel para trabajar con Nginx. Aquí está mi estructura de directorios:Configuración de Laravel con Nginx

/project 
    /application 
    /laravel 
    /public 
     index.php 
    /legacy 
     /index.php 
     /stylesheets 
     default.css 

Básicamente lo que tengo es un estándar Laravel descarga w/una carpeta legacy tirado en el que contiene todos los archivos de mi proyecto no MVC.

Necesito Nginx para comprobar primero si la página/archivo solicitado existe dentro de la herencia, si lo hace entonces quiero usar eso. De lo contrario, quiero recurrir al archivo index.php de Laravel que se encuentra en project/public/.

No soy un experto en lo que respecta a las configuraciones de Nginx por lo que cualquier ayuda que pueda proporcionar será muy apreciada.

+0

Esto no es laravel pero este tutorial, tiene que introducir en la dirección correcta: https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont- trust-the-tutorials-check-your-configuration / – mikelbring

Respuesta

20
server { 
    server_name .laravel.dev; 
    root /home/tamer/code/laravel/public; 

    index index.php index.html; 

    #browse folders if no index file 
     autoindex on; 

    # serve static files directly 
    location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { 
     access_log off; 
     expires max; 
    } 

    # removes trailing slashes (prevents SEO duplicate content issues) 
    if (!-d $request_filename) 
    { 
     rewrite ^/(.+)/$ /$1 permanent; 
    } 

    # enforce NO www 
    if ($host ~* ^www\.(.*)) 
    { 
     set $host_without_www $1; 
     rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent; 
    } 


    # canonicalize codeigniter url end points 
    # if your default controller is something other than "welcome" you should change the following 
    if ($request_uri ~* ^(/lobby(/index)?|/index(.php)?)/?$) 
    { 
     rewrite ^(.*)$/permanent; 
    } 

    # removes trailing "index" from all controllers 
    if ($request_uri ~* index/?$) 
    { 
     rewrite ^/(.*)/index/?$ /$1 permanent; 
    } 

    # unless the request is for a valid file (image, js, css, etc.), send to bootstrap 
    if (!-e $request_filename) 
    { 
     rewrite ^/(.*)$ /index.php?/$1 last; 
     break; 
    } 

    # catch all 
    error_page 404 /index.php; 

     location ~ \.php$ { 
     try_files $uri =404; 
       fastcgi_pass unix:/tmp/php.socket; 
       fastcgi_index index.php; 
       #include fastcgi_params; 
       include /home/tamer/code/nginx/fastcgi_params; 
     } 
     access_log /home/tamer/code/laravel/storage/logs.access.log; 
     error_log /home/tamer/code/laravel/storage/logs.error.log; 
}