mediawiki + nginx

Igor Sysoev is at rambler-co.ru
Wed Apr 29 10:26:05 MSD 2009


On Tue, Apr 28, 2009 at 04:45:17PM -0400, Timothy Ball wrote:

> still sorta confused about running those two together. my end goal is
> to have simple urls like:
> 
>    wiki.something.com/TheArticleThingie
> 
> right now under my current configs i get urls that look like this:
> 
>    wiki.something.com/index.php/TheArticleThingie
> 
> which is *very close* but not quite.
> 
> To prove that i've done my share of "just google it"
> 
> i tried to cut&paste the configs from
> http://wiki.nginx.org/NginxMediaWiki and when i do an nginx -t it
> gives and error:
> 
> --snip--snip--snip--
> tina:/etc/nginx/vhosts# nginx -t
> 2009/04/28 20:32:25 [emerg] 1172#0: invalid number of arguments in
> "rewrite" directive in /etc/nginx/vhosts/wiki.sunlightlabs.com.conf:22
> 2009/04/28 20:32:25 [emerg] 1172#0: the configuration file
> /etc/nginx/nginx.conf test failed
> --snip--snip--snip--
> 
> --snip--snip--snip--
> server {
>     listen 80;
>     server_name wiki.something.com;
> 
> ##    http {
>         root  /var/www/wiki.something.com/www/;
> 
>         location / {
>             index index.php;
> 
>             if ($uri ~ "index.php/") {
>                 rewrite ^/index.php/(.+) /index.php?title=$1 last;
>             }
> 
>             if (!-e $request_filename) {
>                 rewrite ^/(.+) /index.php?title=$1 last;
>             }
>         }
> 
>         # .php5 sent to php5
>         location ~ .*\.php$ {
>             include /etc/nginx/fastcgi.conf;
>             fastcgi_index index.php;
> 
>             if ($uri !~ "^/images/" ) {
>                 fastcgi_pass  127.0.0.1:10000;
>             }
>             fastcgi_param SCRIPT_FILENAME $document_root/index.php;
>             fastcgi_param SCRIPT_NAME /index.php;
>             fastcgi_param PATH_INFO $fastcgi_script_name;
>             fastcgi_param PHP_SELF /index.php;
>             fastcgi_param SCRIPT_URL /index.php;
>         }
>      access_log /var/log/nginx/something_wiki_access.log combined;
>      error_log /var/log/nginx/something_wiki_error.log error;
> 
> ##    }
> }
> # vim: set ft=nginx:

If you have "if ($uri" in configuration, this means that your configuraiton
is far from optimal and has hidden agendas.

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

       location /images/ {
           # empty
       }

       location ~  ^/index.php/(.+) {
           rewrite ^/index.php/(.+) /index.php?title=$1 last;
       }

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


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list