Página em branco: wordpress em nginx + php-fpm

18

Dia bom.

Embora este post discuta uma configuração semelhante à minha que serve páginas em branco ocasionalmente após a instalação bem-sucedida, não consigo servir nada além de páginas em branco. Não há erros presentes em /var/log/nginx/error.log, /var/log/php-fpm.logou /var/log/nginx/us/sharonrhodes/blog/error.log.

Minha configuração:

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

Arquivos de configuração

php-fpm.conf:

[global]
pid = executar / 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
usuário = www
group = 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:

usuário www;
worker_processes 1;

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


eventos {
    worker_connections 1024;
}


http {
    inclua mime.types;
    aplicativo default_type / octet-stream;
    sendfile ativado;
    keepalive_timeout 65;

    gzip on;

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

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

php upstream {
    servidor 127.0.0.1:9000;
}

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

    server_name blog.sharonrhodes.us;
    root / srv / apps / us / sharonrhodes / blog;
    índice index.php;

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

    location = /robots.txt {
            permitir todos;
            log_not_found off;
            access_log off;
    }

    local / {
            # Isso é legal porque nenhum php é tocado para conteúdo estático                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    localização ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            #NOTA: você deve ter "cgi.fix_pathinfo = 0;" no php.ini                                                                                          
            inclua fastcgi_params;
            fastcgi_intercept_errors ativado;
            fastcgi_pass php;
    }

    local ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            expira no máximo;
            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;

# Somente PHP, necessário se o PHP foi criado com --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;
troutwine
fonte
página em branco geralmente significa que há um erro fatal. Dê uma olhada no seu error_log para obter mais informações
Mike
11
Eu deveria ter afirmado isso, mas não há erros presentes em /var/log/nginx/error.log, /var/log/php-fpm.log ou / var / log / nginx / us / sharonrhodes / blog / error. registro.
troutwine

Respostas:

37

Por padrão, a fonte do Nginx não define SCRIPT_FILENAME no arquivo fastcgi_params, portanto, a menos que o repositório de instalação do Nginx o faça, você mesmo precisará fazê-lo.

Verifique se a seguinte linha está no seu arquivo fastcgi_params:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

e se não, adicione-o.

Martin Fjordvald
fonte
Infelizmente, eu já fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;definido no topo de /etc/nginx/conf/fastcgi.conf. Vou editar a postagem original para refletir isso.
troutwine
4
Você inclui o arquivo fastcgi_params, não fastcgi.conf. Minha resposta ainda é válida.
Martin Fjordvald 18/01
4

Este me mordeu - e foi totalmente minha culpa. Eu queria compartilhar o que me consertava. No meu caso, o index.php não estava carregando (página em branco), mas o wp-admin funcionou.

Tenho um tema personalizado e migrei recentemente de uma conta de hospedagem compartilhada para um VPS. Eu fiz um rsync e meu tema (/srv/blog.clifton.io/wp-content/themes/theme-here) é um link simbólico. Esse link simbólico quebrou, é claro, pois estava usando o caminho da minha conta de hospedagem anterior.

Espero que isto ajude! (e gostaria que registrasse "TEMA NÃO ENCONTRADO" ou similar)

Brian Clifton
fonte
passou 2 dias nele. Excluiu um tema sem saber e havia páginas em branco. Definitivamente, devo mostrar um erro de tema não encontrado.
SA Malik