18 votos

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

Buenos días.

Mientras esto post discute una configuración similar a la mía sirviendo páginas en blanco ocasionalmente después de haber hecho 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.log o /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)
  • Archivos de Linux

Archivos de configuración

php-fpm.conf:

\[global\]
pid = run/php-fpm/php-fpm.pid
error\_log = log/php-fpm.log
log\_level = notice

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

pm = dynamic
pm.max\_children = 50
pm.start\_servers = 20
pm.min\_spare\_servers = 5
pm.max\_spare\_servers = 35
pm.max\_requests = 500

nginx.conf:

user www;
worker\_processes  1;

error\_log  /var/log/nginx/error.log  notice;
pid        /var/run/nginx.pid;

events {
    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;

    server\_name 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 {
            allow all;
            log\_not\_found off;
            access\_log off;
    }

    location / {
            # This is cool because no php is touched for static content                                                                                        
            try\_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location ~ \\.php$ {
            fastcgi\_split\_path\_info ^(.+\\.php)(/.+)$;
            #NOTE: You should have "cgi.fix\_pathinfo = 0;" in php.ini                                                                                          
            include fastcgi\_params;
            fastcgi\_intercept\_errors on;
            fastcgi\_pass php;
    }

    location ~\* \\.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires 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 only, required if PHP was built with --enable-force-cgi-redirect                                                                                         
fastcgi\_param  REDIRECT\_STATUS    200;

37voto

Schotime Puntos 6067

Por defecto la fuente de Nginx no define SCRIPT_FILENAME en el archivo fastcgi_params, así que a menos que el repositorio desde el que instaló Nginx lo haga usted mismo.

Comprueba si la siguiente línea está en tu archivo fastcgi_params:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

y si no, entonces añádelo.

4voto

brokenfoot Puntos 171

Este me acaba de morder, y fue totalmente mi culpa. Quería compartir lo que me solucionó. En mi caso, el index.php no se cargaba (página en blanco) pero wp-admin funcionaba.

Tengo un tema personalizado y recientemente he migrado 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 symlink. 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 se registrara "TEMA NO ENCONTRADO" o algo similar)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: