Порожня сторінка: 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 = запустити / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = повідомлення

[www]
прослуховувати = 127.0.0.1:9000
liste.owner = www
liste.group = www
прослуховувати.mode = 0660
користувач = www
група = www

пм = динамічний
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;

повідомлення про помилку_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;


події {
    work_connections 1024;
}


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

    gzip на;

    включати /etc/nginx/sites-enabled/*.conf;
}

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

висхідний php {
    сервер 127.0.0.1:9000;
}

сервер {
    повідомлення про помилку_var /var/log/nginx/us/sharonrhodes/blog/error.log;
    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 вимкнено;
    }

    location = /robots.txt {
            дозволити всім;
            log_not_found off;
            access_log вимкнено;
    }

    Місцезнаходження / {
            # Це класно, тому що жоден php не торкається статичного вмісту                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    розташування ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            # ПРИМІТКА: у вас повинен бути "cgi.fix_pathinfo = 0;" в php.ini                                                                                          
            включати fastcgi_params;
            fastcgi_intercept_errors увімкнено;
            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 $ server_name;

# PHP, необхідний лише якщо PHP був побудований з --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;

порожня сторінка зазвичай означає, що є фатальна помилка. Погляньте на свій файл помилок для отримання додаткової інформації
Майк

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 дні. Тему невідомо видалили, і там були порожні сторінки. Я обов'язково повинен показати помилку теми, яку не знайдено.
SA Malik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.