在Nginx的子目录中安装wordpress

I am having a website running on tomcat, and I want to set my blog under a sub-directory of same website as example.com/blog

I tried using multiple settings for it, but none is working. Some gives 502 error, some 404 and following configuration gives No input file specified error.

server {
    listen 80;
    server_name www.example.com;
    gzip on;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_pass http://localhost:8080;
    }

    location ^~ /blog{
        root /home/myubuntu/www/blog;
        index index.php index.html index.htm;
        try_files $uri $uri/ /blog/index.php?q=$uri&$args;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

I am running this same blog on a subdomain with following configuration successfully:

server {
    listen 80;
    root /home/myubuntu/www/blog;
    index index.php index.html index.htm;

    server_name blog.example.com;
    gzip on;

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

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx.html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

Could someone please tell me, what I am doing wrong

I'd the same issue and after 2 days of searching combining settings and searching... I make something that worked for me. I am running nginx 1.8 Wordpress... to be honest don't know...

this is my configuration

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

    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    location / {
            root       /http;
            index      index.php index.html index.htm;
            try_files  $uri $uri/ @wordpress;
    }

    location ~ \.php$ {
            root           /http/wordpress;
            fastcgi_pass   unix:/var/run/php5-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }

    location @wordpress {
            try_files $uri /index.php;
            fastcgi_intercept_errors on;
    }

    location /wordpress {
            try_files $uri $uri/ @wordpress;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/www;
    }
}

I hope this helps you...


Here is the setting path:

etc/nginx/sites-availability/default
You need to follow the minimum setting in nginx with wordpress.
   server {
        listen   80;

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

    server_name 182.71.214.253;

    location /blogs {

            try_files $uri $uri/ /blogs/index.php?$args;
    }



    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /var/www/html;
        #root /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on the php-fpm socket
    location ~ \.php$ {
             fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME          $document_root$fastcgi_script_name;
             include fastcgi_params;

    }} </code> </pre> After this settings,You need to restart the two services.<pre><code>1:NGINX : sudo service nginx restart<br/>2:php5-fpm : sudo service php5-fpm restart</code></pre><br/>After that your website is working fine.<br/>If still needs problem then share with us.