Acesso negado ao painel de administração do Wordpress (nginx / ubuntu)

1

Configuração: nginx / 1.4.6, Ubuntu / 14.04.3 LTS, Wordpress / 4.5.4

Estou executando o Wordpress de um subdiretório (seguido neste artigo: Usando uma instalação de subdiretórios pré-existente ) e a única maneira que encontrei para fazer o site funcionar é ter isso como parte da configuração do meu nginx:

location / {
    try_files $uri /wordpress$uri/ /wordpress/index.php?$args;
}

... mas com isso eu não consigo acessar o painel de administração . Com qualquer outra configuração do nginx eu vejo o conteúdo HTML, mas recebo 404's para cada ativo externo (css, images, js, etc).

Eu tentei muitas configurações diferentes sem resultados após este post (entre muitos outros):

Configuração atual do nginx:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php;

    server_name mysite.com;

    location / {
        #try_files $uri $uri/ /index.php?$args;
        #try_files $uri /wordpress$uri/ /wordpress/index.php?$args;
    }

    location /wordpress {
        try_files $uri $uri/ /wordpress/index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
    
por Claudio Bredfeldt 16.09.2016 / 22:57

1 resposta

1

Aqui está a configuração de localização que uso para executar o wordpress em um subdiretório "blog". more_clear_headers requer o módulo correto compilado no Nginx.

location / {
    # If the file can't be found try adding a slash on the end - it might be
    # a directory the client is looking for. Then try the Wordpress blog URL
    # this might send a few requests to PHP that don't need to go that way
    try_files $uri $uri/ /blog/index.php?$args;
    more_clear_headers Server; more_clear_headers "Pragma"; more_clear_headers "Expires";
}

Esta parte é útil

# Add trailing slash to */wp-admin requests.
rewrite /blog/wp-admin$ $scheme://$host$uri/ permanent;

Isso não é necessário para a maioria, mas eu mudo vários cabeçalhos para páginas que não são de administração, então isso garante que os cabeçalhos padrão sejam passados.

# Wordpress admin caching headers are set correctly, for pages and resources. The only reason we define
# this block separately is to avoid messing with the headers in the main php block.
# This is probably unnecessary because of the skip_cache variable and may be removed
location ~* wp-admin {
    fastcgi_keep_conn on;

    fastcgi_pass php56-fpm;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
 }

Eu tenho um Tutorial do Wordpress / Nginx você pode achar útil. Ele inclui arquivos de configuração que você pode baixar, embora eu não ache que eu realmente inclua esse padrão do Wordpress em um subdiretório - não tenho 100% de certeza.

    
por 17.09.2016 / 01:46