Página en blanco: wordpress en nginx + php-fpm

18

Buen día.

Si bien esta publicación analiza una configuración similar a la mía que sirve páginas en blanco ocasionalmente después de haber realizado una instalación exitosa, no puedo servir nada más que páginas en blanco. No hay errores presentes en /var/log/nginx/error.log, /var/log/php-fpm.logo /var/log/nginx/us/sharonrhodes/blog/error.log.

Mi configuración:

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

Archivos de configuración

php-fpm.conf:

[global]
pid = ejecutar / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = aviso

[www]
escuchar = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
usuario = www
grupo = www

pm = dinámico
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

nginx.conf:

usuario www;
trabajador_procesos 1;

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


eventos {
    trabajador_conecciones 1024;
}


http {
    incluye mime.types;
    default_type application / octet-stream;
    enviar archivo;
    keepalive_timeout 65;

    gzip on;

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

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

php ascendente {
    servidor 127.0.0.1:9000;
}

servidor {
    error_log /var/log/nginx/us/sharonrhodes/blog/error.log Notice;
    access_log /var/log/nginx/us/sharonrhodes/blog/access.log;

    nombre_servidor blog.sharonrhodes.us;
    root / srv / apps / us / sharonrhodes / blog;
    index index.php;

    ubicación = /favicon.ico {
            log_not_found off;
            acceso_log desactivado;
    }

    location = /robots.txt {
            permitir todo;
            log_not_found off;
            acceso_log desactivado;
    }

    ubicación / {
            # Esto es genial porque no se toca php para contenido estático                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    ubicación ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            # NOTA: debe tener "cgi.fix_pathinfo = 0;" en php.ini                                                                                          
            incluir fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass php;
    }

    ubicación ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            expira 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 $ server_name;

# PHP solamente, requerido si PHP fue construido con --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;
trucha
fuente
página en blanco generalmente significa que hay un error fatal. Echar un vistazo a su error_log para obtener más información
Mike
1
Debería haber dicho esto, pero no hay errores presentes en /var/log/nginx/error.log, /var/log/php-fpm.log o / var / log / nginx / us / sharonrhodes / blog / error. Iniciar sesión.
troutwine

Respuestas:

37

De forma predeterminada, la fuente Nginx no define SCRIPT_FILENAME en el archivo fastcgi_params, por lo que a menos que el repositorio desde el que instaló Nginx lo haga usted mismo.

Compruebe si la siguiente línea está en su archivo fastcgi_params:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

y si no, entonces agrégalo.

Martin Fjordvald
fuente
Lamentablemente, he fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;definido justo en la parte superior de /etc/nginx/conf/fastcgi.conf. Editaré la publicación original para reflejar esto.
Troutwine
44
Incluye el archivo fastcgi_params, no fastcgi.conf. Mi respuesta sigue siendo válida.
Martin Fjordvald
4

Este me mordió, y fue totalmente mi culpa. Quería compartir lo que me arregló. En mi caso, el index.php no se estaba cargando (página en blanco) pero wp-admin funcionó.

Tengo un tema personalizado y recientemente migré de una cuenta de alojamiento compartido a un VPS. Hice un rsync y mi tema (/srv/blog.clifton.io/wp-content/themes/theme-here) es un enlace simbólico. Este enlace simbólico se rompió, por supuesto, ya que estaba usando la ruta de mi cuenta de alojamiento anterior.

¡Espero que esto ayude! (y desearía que registrara "TEMA NO ENCONTRADO" o similar)

Brian Clifton
fuente
Pasé 2 días en ello. Eliminó un tema sin saberlo y había páginas en blanco. Definitivamente debería mostrar un error de tema no encontrado.
SA Malik