atom feed17 messages in ru.sysoev.nginxRe: Static files download
FromSent OnAttachments
AxelJun 9, 2010 7:39 am 
Igor SysoevJun 9, 2010 7:42 am 
AxelJun 9, 2010 7:47 am 
Igor SysoevJun 9, 2010 7:57 am 
AxelJun 9, 2010 8:34 am 
AxelJun 9, 2010 11:06 am 
Igor SysoevJun 9, 2010 11:11 am 
Grzegorz SienkoJun 9, 2010 3:04 pm 
AxelJun 10, 2010 1:09 am 
Igor SysoevJun 10, 2010 1:16 am 
AxelJun 10, 2010 1:38 am 
AxelJun 10, 2010 3:21 am 
Igor SysoevJun 10, 2010 5:14 am 
AxelJun 10, 2010 6:09 am 
Igor SysoevJun 10, 2010 6:20 am 
Edho P AriefJun 10, 2010 6:22 am 
AxelJun 10, 2010 6:53 am 
Subject:Re: Static files download
From:Igor Sysoev (ig@sysoev.ru)
Date:Jun 10, 2010 6:20:16 am
List:ru.sysoev.nginx

On Thu, Jun 10, 2010 at 03:09:34PM +0200, Axel wrote:

Igor,

I'm trying to follow your advise but look:

# ROUTING TO KOHANA IF REQUIRED location / { try_files $uri $uri/ @kohana; }

# HANDLES THE REWRITTEN URLS TO KOHANA CONTROLLER location @kohana { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; include hom_params; fastcgi_param SCRIPT_FILENAME $document_root/index.php; }

# FOR PHP FILES NOT HANDLED BY KOHANA location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include hom_params; }

Nearly everything works at this stage EXCEPT:

when I browse an URL like "http://www.xxxx.com/share.php", this file (share.php)
does not exist in the document root therefore this URL should be handled by
@kohana. As an answer, I get a "No input file specified". I'm pretty sure the .php
location is taking over @kohana. I tried to add a break in @kohana but no
success.

Do you see what I mean?

The single "break" is meanless directive.

You should add try_files test in \.php$ location:

location ~* \.php$ { + try_files $uri @kohana; fastcgi_pass 127.0.0.1:9000;

Please read also the order of location processing: http://nginx.org/en/docs/http/request_processing.html#simple_php_site_configuration

Le 10 juin 2010 à 14:15, Igor Sysoev a écrit :

On Thu, Jun 10, 2010 at 12:22:04PM +0200, Axel wrote:

thanks for your help. Actually I wrote my entire configuration file again from
scratch. It works very well now: http://pastebin.com/pCL2dy9Z I'll post this configuration somewhere for Kohana users because it's been was a
pain to get it work.

This is wrong configuration.

1) All these

set $server_type prod; set $medias_path /var/www/xxxx/medias; ...

are not macros, but run-time directives. They will run every request. It's much better to set them in place:

fastcgi_param SERVER_TYPE prod; fastcgi_param MEDIAS_PATH /var/www/xxxx/medias;

2) This

if (!-e $request_filename) { rewrite ^(.+)$ /index.php$1 last; break; }

is one of the worst configuration practice. Never do this, never repeat this.

The right way is:

location / { try_files $uri @kohana; }

location @kohana { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_param DOCUMENT_URI /index.php$uri; ... other fastcgi_params }