Static files download
Igor Sysoev
igor at sysoev.ru
Thu Jun 10 17:20:56 MSD 2010
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
> > }
> >
> >
> > --
> > Igor Sysoev
> > http://sysoev.ru/en/
> >
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > http://nginx.org/mailman/listinfo/nginx
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list