2012-01-13 26 views
18

PHPフレームワークをNginxと連携させるように設定しようとしています。ここに私のディレクトリ構造は次のとおりです。NginxでLaravelを設定する

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

は基本的に私が持っているもの、私の非MVCプロジェクトからのすべてのファイルを保持している中で投げlegacyフォルダ/ wの標準Laravelでダウンロードできます。

リクエストされたページ/ファイルがレガシーの中に存在するかどうか最初に確認するためにNginxが必要です。それ以外の場合は、project/public/にあるLaravelのindex.phpファイルにフォールバックしたいと思います。

私はNginx設定に関して専門家ではありませんので、あなたが提供できるヘルプがあれば最も感謝します。

+0

これはLaravelはありませんが、このチュートリアルでは、正しい方向にあなたを指している必要があります:https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-チュートリアルを信頼する - あなたの設定を確認する/ – mikelbring

答えて

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; 
}