Page vierge: wordpress sur nginx + php-fpm

18

Bonne journée.

Bien que cet article traite d'une configuration similaire à la mienne servant occasionnellement des pages blanches après avoir effectué une installation réussie, je ne suis pas en mesure de servir autre chose que des pages blanches. Aucune erreur n'est présente dans /var/log/nginx/error.log, /var/log/php-fpm.logou /var/log/nginx/us/sharonrhodes/blog/error.log.

Ma configuration:

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

Fichiers de configuration

php-fpm.conf:

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

[www]
écouter = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
utilisateur = www
groupe = www

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

nginx.conf:

utilisateur www;
worker_processes 1;

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


événements {
    travailleurs_connexions 1024;
}


http {
    inclure mime.types;
    application par défaut_type / flux d'octets;
    sendfile on;
    keepalive_timeout 65;

    gzip on;

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

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

php en amont {
    serveur 127.0.0.1:9000;
}

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

    nom_serveur 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 {
            autorise tout;
            log_not_found off;
            access_log off;
    }

    emplacement / {
            # C'est cool car aucun php n'est touché pour le contenu statique                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    emplacement ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            #REMARQUE: Vous devriez avoir "cgi.fix_pathinfo = 0;" dans php.ini                                                                                          
            inclure fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass php;
    }

    emplacement ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            expire max;
            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 $ nom_serveur;

# PHP uniquement, requis si PHP a été construit avec --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;
troutwine
la source
une page blanche signifie généralement qu'il y a une erreur fatale. Jetez un oeil à votre error_log pour plus d'informations
Mike
1
J'aurais dû le dire, mais il n'y a aucune erreur dans /var/log/nginx/error.log, /var/log/php-fpm.log ou / var / log / nginx / us / sharonrhodes / blog / error. Journal.
troutwine

Réponses:

37

Par défaut, la source Nginx ne définit pas SCRIPT_FILENAME dans le fichier fastcgi_params, donc à moins que le référentiel à partir duquel vous avez installé Nginx ne le fasse vous-même.

Vérifiez si la ligne suivante se trouve dans votre fichier fastcgi_params:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

et sinon, ajoutez-le.

Martin Fjordvald
la source
Malheureusement, j'ai fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;défini tout en haut /etc/nginx/conf/fastcgi.conf. Je vais modifier le message d'origine pour refléter cela.
troutwine
4
Vous incluez le fichier fastcgi_params, pas fastcgi.conf. Ma réponse est toujours valable.
Martin Fjordvald
4

Celui-ci m'a juste mordu - et c'était totalement de ma faute. Je voulais partager ce qui m'a fixé. Dans mon cas, le fichier index.php ne se chargeait pas (page vierge) mais wp-admin fonctionnait.

J'ai un thème personnalisé et j'ai récemment migré d'un compte d'hébergement partagé vers un VPS. J'ai fait un rsync et mon thème (/srv/blog.clifton.io/wp-content/themes/theme-here) est un lien symbolique. Ce lien symbolique s'est cassé bien sûr, car il utilisait le chemin d'accès de mon précédent compte d'hébergement.

J'espère que cela t'aides! (et souhaite qu'il enregistre "THEME NON TROUVE" ou similaire)

Brian Clifton
la source
y ai passé 2 jours. Supprimé un thème sans le savoir et il y avait des pages blanches. Je devrais certainement montrer une erreur de thème introuvable.
SA Malik