Search code examples
wordpressnginxserverpermalinksnginx-config

Wordpress Permalinks - NGINX Conf (No input file specified Error)


This is my current setup for my /etc/nginx/conf.d/default.conf file on my nginx web server. I have a Wordpress installation and I am attempting to use the pretty permalinks structure like so: http://XXX.XXX.XX.X/kiosks/%postname%/

Currently getting an "No input file specified." error. Below is my default.conf:

#
# The default server
#
server {
    listen       80;
    server_name example.com;

    root   /usr/share/nginx/html;
    # location / {
    #     root   /usr/share/nginx/html;
    #     index index.php  index.html index.htm;
    # }
    location /kiosks {
        index index.php  index.html index.htm;
        try_files $uri $uri/index.php?$args;
    }   

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

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

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        # fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Solution

  • Solution:

    #
    # The default server
    #
    server {
        listen       80;
        server_name example.com;
    
        root   /usr/share/nginx/html;
        # location / {
        #     root   /usr/share/nginx/html;
        #     index index.php  index.html index.htm;
        # }
        location @wp {
            rewrite ^/kiosks(.*) /kiosks/index.php?$1;
        }
        location /kiosks {
            alias "/usr/share/nginx/html/kiosks/"; #where wp actually is
            try_files $uri $uri/ @wp;
    
            location ~ \.php$ {
                try_files $uri =404;
                fastcgi_read_timeout 300s;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param  SCRIPT_FILENAME $request_filename;
                include fastcgi_params;
            }
        }
        # location /kiosks {
        #     try_files $uri $uri/index.php?$args;
        #     index index.php  index.html index.htm;
        # }   
    
        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            # fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }