Pusta strona: wordpress na nginx + php-fpm

18

Dobry dzień.

Chociaż w tym poście omówiono konfigurację podobną do mojej, w której po udanej instalacji od czasu do czasu wyświetlałem puste strony, nie jestem w stanie wyświetlać niczego oprócz pustych stron. Nie ma żadnych błędów obecnych w /var/log/nginx/error.log, /var/log/php-fpm.loglub /var/log/nginx/us/sharonrhodes/blog/error.log.

Moja konfiguracja:

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

Pliki konfiguracyjne

php-fpm.conf:

[światowy]
pid = run / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = informacja

[www]
Listen = 127.0.0.1:9000
listen.owner = www
listen.group = www
Listen.mode = 0660
użytkownik = www
grupa = www

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

nginx.conf:

użytkownik www;
proces_procesowy 1;

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


wydarzenia {
    połączenia_ robotnicze 1024;
}


http {
    obejmują mime.types;
    default_type application / octet-stream;
    wyślij plik na;
    keepalive_timeout 65;

    gzip on;

    obejmują /etc/nginx/sites-enabled/*.conf;
}

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

php upstream {
    serwer 127.0.0.1:9000;
}

serwer {
    error_log /var/log/nginx/us/sharonrhodes/blog/error.log zawiadomienie;
    access_log /var/log/nginx/us/sharonrhodes/blog/access.log;

    nazwa_serwera blog.sharonrhodes.us;
    root / srv / apps / us / sharonrhodes / blog;
    indeks index.php;

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

    location = /robots.txt {
            pozwól wszystkim;
            log_not_found off;
            access_log off;
    }

    Lokalizacja / {
            # To jest fajne, ponieważ żaden php nie jest dotykany dla zawartości statycznej                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    lokalizacja ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            # UWAGA: Powinieneś mieć „cgi.fix_pathinfo = 0;” w php.ini                                                                                          
            obejmują fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass php;
    }

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

/etc/nginx/conf/fastcgi.conf:

fastcgi_param SCRIPT_FILENAME $ katalog_główny dokumentu $ 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 $ katalog_główny dokumentu;
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 $ port_zdalny;
fastcgi_param SERVER_ADDR $ server_addr;
fastcgi_param SERVER_PORT $ serwer_port;
fastcgi_param SERVER_NAME $ nazwa_serwera;

# Tylko PHP, wymagane, jeśli PHP zostało zbudowane z --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;
pstrąg
źródło
pusta strona zwykle oznacza błąd krytyczny. Spójrz na swój dziennik błędów, aby uzyskać więcej informacji
Mike
1
Powinienem to powiedzieć, ale nie ma żadnych błędów w /var/log/nginx/error.log, /var/log/php-fpm.log lub / var / log / nginx / us / sharonrhodes / blog / error. log.
troutwine 18.01.11

Odpowiedzi:

37

Domyślnie źródło Nginx nie definiuje SCRIPT_FILENAME w pliku fastcgi_params, więc chyba że repo, z którego zainstalowałeś Nginx, nie musisz tego robić sam.

Sprawdź, czy w pliku fastcgi_params znajduje się następujący wiersz:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

a jeśli nie, to dodaj go.

Martin Fjordvald
źródło
Niestety, fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;zdefiniowałem na samym początku /etc/nginx/conf/fastcgi.conf. Zredaguję oryginalny post, aby to odzwierciedlić.
troutwine,
4
Dołączasz plik fastcgi_params, a nie fastcgi.conf. Moja odpowiedź jest nadal aktualna.
Martin Fjordvald,
4

Ten tylko mnie ugryzł - i to była całkowicie moja wina. Chciałem podzielić się tym, co mnie naprawiło. W moim przypadku plik index.php nie ładował się (pusta strona), ale wp-admin działał.

Mam niestandardowy motyw i niedawno przeprowadziłem migrację ze wspólnego konta hostingowego na VPS. Zrobiłem rsync i mój motyw (/srv/blog.clifton.io/wp-content/themes/theme-here) jest dowiązaniem symbolicznym. To dowiązanie symboliczne oczywiście się zepsuło, ponieważ korzystało ze ścieżki z mojego poprzedniego konta hostingowego.

Mam nadzieję że to pomoże! (i żałuję, że nie zarejestruje „THEME NOT FUND” lub podobnego)

Brian Clifton
źródło
spędziłem na nim 2 dni. Nieświadomie usunąłem temat i były puste strony. Zdecydowanie powinienem pokazać błąd, w którym nie znaleziono motywu.
SA Malik,