Leere Seite: WordPress auf Nginx + PHP-FPM


18

Schönen Tag.

In diesem Beitrag wird ein ähnliches Setup behandelt wie bei der gelegentlichen Bereitstellung leerer Seiten nach einer erfolgreichen Installation. Ich kann jedoch nur leere Seiten bereitstellen. Es gibt keine Fehler in /var/log/nginx/error.log, /var/log/php-fpm.logoder /var/log/nginx/us/sharonrhodes/blog/error.log.

Mein Setup:

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

Konfigurationsdateien

php-fpm.conf:

[global]
pid = run / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = Bekanntmachung

[www]
listen = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
user = www
group = www

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

nginx.conf:

Benutzer www;
worker_processes 1;

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


Veranstaltungen {
    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;
}

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

Upstream PHP {
    Server 127.0.0.1:9000;
}

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

    Servername 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 {
            alles erlauben;
            log_not_found off;
            access_log off;
    }

    Lage / {
            # Das ist cool, weil kein PHP für statischen Inhalt berührt wird                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    Ort ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            #HINWEIS: Sie sollten "cgi.fix_pathinfo = 0;" in der php.ini                                                                                          
            include fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass php;
    }

    location ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            Läuft maximal ab;
            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 $ Servername;

# PHP nur erforderlich, wenn PHP mit --enable-force-cgi-redirect erstellt wurde                                                                                         
fastcgi_param REDIRECT_STATUS 200;

Eine leere Seite bedeutet normalerweise, dass ein schwerwiegender Fehler vorliegt. Werfen Sie einen Blick auf Ihr error_log für weitere Informationen
Mike

1
Ich hätte dies angeben sollen, aber in /var/log/nginx/error.log, /var/log/php-fpm.log oder /var / log / nginx / us / sharonrhodes / blog / error sind keine Fehler vorhanden. Log.
Forellenwein

Antworten:


36

Standardmäßig definiert die Nginx-Quelle SCRIPT_FILENAME nicht in der Datei fastcgi_params. Wenn Sie also Nginx von nicht installiert haben, müssen Sie dies selbst tun.

Überprüfen Sie, ob die folgende Zeile in Ihrer fastcgi_params-Datei enthalten ist:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

und wenn nicht, dann füge es hinzu.


Leider habe ich ganz oben fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;definiert /etc/nginx/conf/fastcgi.conf. Ich werde den ursprünglichen Beitrag bearbeiten, um dies widerzuspiegeln.
Forellenwein

4
Sie fügen die Datei fastcgi_params hinzu, nicht fastcgi.conf. Meine Antwort ist noch gültig.
Martin Fjordvald

4

Dieser hat mich nur gebissen - und es war total meine Schuld. Ich wollte teilen, was mich reparierte. In meinem Fall wurde die index.php nicht geladen (leere Seite), aber wp-admin funktionierte.

Ich habe ein benutzerdefiniertes Thema und bin kürzlich von einem gemeinsam genutzten Hosting-Konto zu einem VPS gewechselt. Ich habe einen rsync gemacht und mein Theme (/srv/blog.clifton.io/wp-content/themes/theme-here) ist ein Symlink. Dieser Symlink ist natürlich kaputt gegangen, da er den Pfad von meinem vorherigen Hosting-Account verwendet hat.

Hoffe das hilft! (und wünschte, es würde "THEMA NICHT GEFUNDEN" oder ähnliches protokollieren)


verbrachte 2 Tage darauf. Löschte ein Thema unwissentlich und es gab leere Seiten. Ich sollte auf jeden Fall ein Thema anzeigen, das Fehler nicht gefunden hat.
SA Malik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.