Good day.

While this post discusses a similar setup to mine serving blank pages occasionally after having made a successful installation, I am unable to serve anything but blank pages. There are no errors present in /var/log/nginx/error.log, /var/log/php-fpm.log or /var/log/nginx/us/sharonrhodes/blog/error.log.

My setup:

  • Wordpress 3.0.4
  • nginx 0.8.54
  • php-fpm 5.3.5 (fpm-fcgi)
  • Arch Linux

Configuration Files


pid = run/php-fpm/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice

listen =
listen.owner = www
listen.group = www
listen.mode = 0660
user = www
group = www

pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500


user www;
worker_processes  1;

error_log  /var/log/nginx/error.log  notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    gzip  on;

    include /etc/nginx/sites-enabled/*.conf;


upstream php {

server {
    error_log /var/log/nginx/us/sharonrhodes/blog/error.log notice;
    access_log /var/log/nginx/us/sharonrhodes/blog/access.log;

    server_name blog.sharonrhodes.us;
    root /srv/apps/us/sharonrhodes/blog;
    index index.php;

    location = /favicon.ico {
            log_not_found off;
            access_log off;

    location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;

    location / {
            # This is cool because no php is touched for static content                                                                                        
            try_files $uri $uri/ /index.php?q=$uri&$args;

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini                                                                                          
            include fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass php;

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;


fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect                                                                                         
fastcgi_param  REDIRECT_STATUS    200;
  • blank page usually means there is a fatal error. Take a look at your error_log for more info
    – Mike
    Jan 17, 2011 at 21:56
  • 1
    I should have stated this, but there are no errors present in /var/log/nginx/error.log, /var/log/php-fpm.log or /var/log/nginx/us/sharonrhodes/blog/error.log.
    – troutwine
    Jan 18, 2011 at 3:07

2 Answers 2


By default the Nginx source does not define SCRIPT_FILENAME in the fastcgi_params file, so unless the repo you installed Nginx from does that you need to do it yourself.

Check if the following line is in your fastcgi_params file:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

and if not then add it.

  • Unfortunately, I've fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; defined right at the top of /etc/nginx/conf/fastcgi.conf. I will edit the original post to reflect this.
    – troutwine
    Jan 18, 2011 at 16:29
  • 5
    You include the file fastcgi_params, not fastcgi.conf. My answer is still valid. Jan 18, 2011 at 18:44

This one just bit me- and it was totally my fault. I wanted to share what fixed me. In my case, the index.php wasn't loading (blank page) but wp-admin worked.

I have a custom theme and I recently migrated from a shared hosting account to a VPS. I did an rsync and my theme (/srv/blog.clifton.io/wp-content/themes/theme-here) is a symlink. This symlink broke of course, since it was using the path from my previous hosting account.

Hope this helps! (and wish it would log "THEME NOT FOUND" or similar)

  • spent 2 days on it. Deleted a theme unknowingly and there were blank pages. I should definitely show a theme not found error. Nov 11, 2017 at 15:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.