Nginx Drupal Rewrite


#1

Ok, I followed a tutorial online and was trying to get rewrite working
on my
server. Well, everything works ok except for my Photo gallery which is
located in | /gallery |. I’ll include my current config for the
domain (wfto.cc and wfto.cc/gallery)

server {
listen 80;
server_name www.waterfortheoppressed.com
waterfortheoppressed.com;

    rewrite ^ http://wfto.cc permanent;

}

server {
listen 80;
server_name www.wfto.cc wfto.cc;

    access_log  /var/www/logs/wfto.cc.access.log;

    location = / {
            root   /var/www/wfto.cc;
            index  index.php index.html index.htm;
    }
    location / {
        root   /var/www/wfto.cc;
        index  index.php index.html;

        if (!-f $request_filename) {
            rewrite  ^(.*)$  /index.php?q=$1  last;
            break;
        }

        if (!-d $request_filename) {
            rewrite  ^(.*)$  /index.php?q=$1  last;
            break;
        }
    error_page  404  /index.php;

    # serve static files directly
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
          access_log        off;
        expires           30d;
    }
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
            root   /var/www/nginx-default;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
            #proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 

127.0.0.1:9000
#
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/var/www/wfto.cc$fastcgi_script_name;
include fastcgi_params;
}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
            deny  all;
    }

}
}

Claude

Laurence J.
Peterhttp://www.brainyquote.com/quotes/authors/l/laurence_j_peter.html

  • “Originality is the fine art of remembering what you hear but
    forgetting
    where you heard it.”

#2

We’ve got drupal going with a simple try_files $uri $uri/ /path/to/
drupal/index.php?q=$uri&$args;

In nginx 0.7 of course.


#3

On Sat, May 16, 2009 at 09:15:20AM -0700, Michael S. wrote:

We’ve got drupal going with a simple try_files $uri $uri/ /path/to/
drupal/index.php?q=$uri&$args;

In nginx 0.7 of course.

0.6.36 too.


#4

Well I should clarify about the gallery. It’s Gallery2, php-driven.

Where is the } that I should fix?

2009/5/16 Igor S. removed_email_address@domain.invalid

    server_name www.waterfortheoppressed.com
    access_log  /var/www/logs/wfto.cc.access.log;
            rewrite  ^(.*)$  /index.php?q=$1  last;
    error_page  404  /index.php;
            root   /var/www/nginx-default;
    #
    #

First, you should fix ‘}’,

Yogi Berra http://www.brainyquote.com/quotes/authors/y/yogi_berra.html

“If you ask me anything I don’t know, I’m not going to answer.”


#5

On Sat, May 16, 2009 at 06:09:41PM +0200, Claude B. wrote:

}
index index.php index.html index.htm;
if (!-d $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}

  •     }
    
    location = /50x.html {
    #
    #
    location ~ /\.ht {
            deny  all;
    }

}

  • }

}

First, you should fix ‘}’,
Second, use try_files instead of "if"s.
And third, your gallery probably is served as static files by

     location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {

#6

On Sat, May 16, 2009 at 07:04:43PM +0200, Claude B. wrote:

Well I should clarify about the gallery. It’s Gallery2, php-driven.

How does typical URL look ?

Where is the } that I should fix?

I have marked the by “+” and “-”:

  •    }
    
       error_page  404  /index.php;
    
       location ~ /\.ht {
            deny  all;
       }
    

-}
}


#7

Can I just exclude a directory from rewrite?

I suppose I can move the gallery to a subdomain.

2009/5/16 Claude B. removed_email_address@domain.invalid

How does typical URL look ?
deny all;

my

    location = / {
        }
    # serve static files directly

            fastcgi_pass   127.0.0.1:9000;
            deny  all;

And third, your gallery probably is served as static files by

Bill Cosby http://www.brainyquote.com/quotes/authors/b/bill_cosby.html - “Fatherhood is pretending the present you love most is soap-on-a-rope.”

Yogi Berra http://www.brainyquote.com/quotes/authors/y/yogi_berra.html

“If you ask me anything I don’t know, I’m not going to answer.”


#8

I’m getting the “No input file specified.” But only when there’s no
trailing
slash or file specified.

This works:
http://www.example.com/dir/index.php
http://www.example.com/dir/

This does not work:
http://www.example.com/dir

Any ideas?


#9

K i will attempt to do this in a few minutes. I’ll get back to you
about
the gallery

2009/5/16 Igor S. removed_email_address@domain.invalid

  •    }
    

========================
server_name www.wfto.cc wfto.cc;
index index.php index.html;

    #

}
Igor S.


Игорь Сысоев
http://sysoev.ru

Bill Cosby http://www.brainyquote.com/quotes/authors/b/bill_cosby.html

“Fatherhood is pretending the present you love most is soap-on-a-rope.”


#10

Post your config file, specifically the section where you declare your
php
handler

On Sat, May 16, 2009 at 8:16 PM, AMP Admin removed_email_address@domain.invalid wrote:

Any ideas?

Laurence J.
Peterhttp://www.brainyquote.com/quotes/authors/l/laurence_j_peter.html

  • “Originality is the fine art of remembering what you hear but
    forgetting
    where you heard it.”

#11

It says to me when I use try_files “Unknown directive: ‘try_files’” and
I
don’t know how to check the version number of nginx

2009/5/16 Igor S. removed_email_address@domain.invalid

location / {
location ~ .php$ {

I have marked the by “+” and “-”:

located in | /gallery |. I’ll include my current config
}
index index.php index.html index.htm;
if (!-d $request_filename) {
access_log off;
# proxy the PHP scripts to Apache listening on
fastcgi_pass 127.0.0.1:9000;
location ~ /.ht {
Second, use try_files instead of "if"s.

http://sysoev.ru

http://sysoev.ru/en/

Casey
Stengelhttp://www.brainyquote.com/quotes/authors/c/casey_stengel.html

  • “There comes a time in every man’s life, and I’ve had plenty of
    them.”

#12

On Sat, May 16, 2009 at 01:16:01PM -0500, AMP Admin wrote:

Any ideas?
Could you show configuration ?


#13

On Sat, May 16, 2009 at 08:19:50PM +0200, Claude B. wrote:

It says to me when I use try_files “Unknown directive: ‘try_files’” and I
don’t know how to check the version number of nginx

nginx -v


#14

On Sat, May 16, 2009 at 07:58:21PM +0200, Claude B. wrote:

Can I just exclude a directory from rewrite?
I suppose I can move the gallery to a subdomain.

You do not need rewrite at all:

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

location / {
    try_files  $uri  $uri/  /index.php?q=$uri;
}

location /gallery/ {
    try_files  $uri  $uri/  /index.php?q=$uri;
}

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
}

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    ...
}

#15

*nginx version: nginx/0.6.32
*

2009/5/16 Igor S. removed_email_address@domain.invalid

On Sat, May 16, 2009 at 07:58:21PM +0200, Claude B. wrote:
try_files $uri $uri/ /index.php?q=$uri;
fastcgi_pass 127.0.0.1:9000;

2009/5/16 Igor S. removed_email_address@domain.invalid

I have marked the by “+” and “-”:

which

waterfortheoppressed.com;

            break;

            root   /var/www/nginx-default;

on

    # deny access to .htaccess files, if Apache's

Yogi Berra <

Yogi Berra http://www.brainyquote.com/quotes/authors/y/yogi_berra.html

“If you ask me anything I don’t know, I’m not going to answer.”


#16

On Sat, May 16, 2009 at 08:35:25PM +0200, Claude B. wrote:

*nginx version: nginx/0.6.32
*

You may upgrade to 0.6.36 or use

location / {
error_page 404 = /index.php?q=$uri;
log_not_found off;
}

on 0.6.32 instead of

location / {
try_files $uri $uri/ /index.php?q=$uri;
}


#17

And how would I go about replacing my current version with the newest
one?
I’m running Debian Lenny, so I just used apt-get install nginx (which I
know
would yield a slightly older version, but it was much easier at the
time).
Would I just download, compile, and install the source over the current
one?

2009/5/16 Igor S. removed_email_address@domain.invalid

}

}

2009/5/16 Igor S. removed_email_address@domain.invalid

I have marked the by “+” and “-”:

gallery

    listen 80;

        if (!-f $request_filename) {
    error_page   500 502 503 504  /50x.html;

            include        fastcgi_params;

}

Igor S.
them."
Yogi Berra http://www.brainyquote.com/quotes/authors/y/yogi_berra.html

“If you ask me anything I don’t know, I’m not going to answer.”


Igor S.
http://sysoev.ru/en/

Laurence J.
Peterhttp://www.brainyquote.com/quotes/authors/l/laurence_j_peter.html

  • “Originality is the fine art of remembering what you hear but
    forgetting
    where you heard it.”

#18

Ok. Until I get this working, I’m re-enabling apache2 (sigh). I will
work
on this asap.

2009/5/16 Igor S. removed_email_address@domain.invalid

*nginx version: nginx/0.6.32

and

I suppose I can move the gallery to a subdomain.
location /gallery/ {

I have marked the by “+” and “-”:

server. Well, everything works ok except for my

    server_name www.wfto.cc  wfto.cc;
    location / {
            rewrite  ^(.*)$  /index.php?q=$1

^.+.(jpg|jpeg|gif|css|png|js|ico)$ {

    }

listening

http://sysoev.ru

http://www.brainyquote.com/quotes/authors/c/casey_stengel.html>


Igor S.
http://sysoev.ru/en/

Bill Cosby http://www.brainyquote.com/quotes/authors/b/bill_cosby.html

“Fatherhood is pretending the present you love most is soap-on-a-rope.”


#19

On Sat, May 16, 2009 at 09:20:31PM +0200, Claude B. wrote:

Ok. Until I get this working, I’m re-enabling apache2 (sigh). I will work
on this asap.

You may stay with 0.6.32 using

location / {
error_page 404 = /index.php?q=$uri;
log_not_found off;
}


#20

On Sat, May 16, 2009 at 08:54:02PM +0200, Claude B. wrote:

And how would I go about replacing my current version with the newest one?
I’m running Debian Lenny, so I just used apt-get install nginx (which I know
would yield a slightly older version, but it was much easier at the time).
Would I just download, compile, and install the source over the current one?

You may build nginx without package manager, but note, that default
nginx installation paths differ from Debian ones: you should use
something
like this:

./configure --prefix=/usr --with-conf-path=/etc/nginx/nginx.conf …
etc.