Bruno Carlin

Setup Nginx for Mediawiki

Two weeks ago, I migrated a server from Apache/mod_php to nginx/php-fpm. Only today did i succeed to remove all side effects. The latest one:

Static files must not go through php-fpm, but a simple test on extensions is ineffective, as url like http://server/File:name_of_the_file.png must be processed by PHP.

Here is my final setup, that corrects all the errors I encountered:

server {
    listen 80;
    server_name server_name;
    index index.php;
    root /path/to/www/;

    # Serve static files with a far future expiration
    # date for browser caches
    location ^~ /images/ {
        expires 1y;
    }
    location ^~ /skins/ {
        expires 1y;
    }

    # Pass the request to php-cgi
    location / {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME $document_root/index.php;
        fastcgi_index  index.php;
        include fastcgi_params;
    }
}