Пустая страница: WordPress на nginx + php-fpm

18

Добрый день.

Хотя в этом посте обсуждается настройка, аналогичная моей, при которой время от времени выполняется успешная установка пустых страниц, я не могу обслуживать ничего, кроме пустых страниц. Там нет ошибок /var/log/nginx/error.log, /var/log/php-fpm.logили /var/log/nginx/us/sharonrhodes/blog/error.log.

Моя настройка:

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

Конфигурационные файлы

PHP-fpm.conf:

[Глобальный]
pid = run / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = уведомление

[WWW]
слушай = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
пользователь = www
группа = www

pm = динамический
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

nginx.conf:

пользователь www;
рабочий_процесс 1;

error_log /var/log/nginx/error.log уведомление;
pid /var/run/nginx.pid;


События {
    рабочий_соединения 1024;
}


http {
    включить mime.types;
    default_type application / octet-stream;
    sendfile on;
    keepalive_timeout 65;

    GZIP на;

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

/etc/nginx/sites-enabled/blog_sharonrhodes_us.conf:

вверх по течению php {
    сервер 127.0.0.1:9000;
}

сервер {
    error_log /var/log/nginx/us/sharonrhodes/blog/error.log note;
    access_log /var/log/nginx/us/sharonrhodes/blog/access.log;

    имя_сервера 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 {
            позволять все;
            log_not_found off;
            access_log off;
    }

    место расположения / {
            # Это круто, потому что ни один php не трогается для статического контента                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    location ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            # ПРИМЕЧАНИЕ: у вас должно быть "cgi.fix_pathinfo = 0;" в php.ini                                                                                          
            включить fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass php;
    }

    местоположение ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            истекает максимум;
            log_not_found off;
    }
}

/etc/nginx/conf/fastcgi.conf:

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 $ имя_сервера;

# Только PHP, требуется, если PHP был построен с --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;
troutwine
источник
пустая страница обычно означает фатальную ошибку. Посмотрите на ваш error_log для получения дополнительной информации
Майк
1
Я должен был это заявить, но в /var/log/nginx/error.log, /var/log/php-fpm.log или / var / log / nginx / us / sharonrhodes / blog / error ошибок нет. журнал.
Troutwine

Ответы:

37

По умолчанию источник Nginx не определяет SCRIPT_FILENAME в файле fastcgi_params, поэтому, если только репозиторий, из которого вы установили Nginx, вам не придется делать это самостоятельно.

Проверьте, есть ли следующая строка в вашем файле fastcgi_params:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

и если нет, то добавьте его.

Мартин Фьордвальд
источник
К сожалению, я fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;определил прямо в верхней части /etc/nginx/conf/fastcgi.conf. Я отредактирую оригинальный пост, чтобы отразить это.
Troutwine
4
Вы включаете файл fastcgi_params, а не fastcgi.conf. Мой ответ остается в силе.
Мартин Фьордвальд
4

Этот только что укусил меня - и это была моя вина. Я хотел поделиться тем, что исправило меня. В моем случае index.php не загружался (пустая страница), но wp-admin работал.

У меня есть пользовательская тема, и я недавно перешел с учетной записи общего хостинга на VPS. Я сделал rsync, и моя тема (/srv/blog.clifton.io/wp-content/themes/theme-here) является символической ссылкой. Эта символическая ссылка разорвалась, конечно, так как она использовала путь из моей предыдущей учетной записи хостинга.

Надеюсь это поможет! (и хотелось бы, чтобы в журнале было сообщение «ТЕМА НЕ НАЙДЕНА» или подобное)

Брайан Клифтон
источник
потратил 2 дня на это. Удалил тему по незнанию и появились пустые страницы. Я должен определенно показать тему не найдена ошибка.
С.А. Малик