WordPress em um subdiretório com Nginx: acesso ao painel?

3

Eu quero configurar um blog WordPress, mas não com uma configuração típica:

  • O site principal está em www.example.com . A partir de agora, tem apenas uma index.html arquivo com uma imagem, nós usará provavelmente um index.php para mostrar algumas informações e acesso a um parte premium do site

  • O blog , com o WordPress, em www.example.com/blog

Estou configurando isso com o Nginx, mas apesar de ter conseguido ver minha página inicial estática em www.example.com e meu blog em www.example.com/blog, não consigo acessar o admin do WordPress painel, por isso não consigo fazer login ou escrever novas postagens.

Este é o arquivo de configuração /etc/nginx/sites-enabled/www.example.com:

server {
    server_name  www.example.com;
    rewrite ^(.*) http://example.com$1 permanent;
}

server {
   listen   80;
   server_name  example.com;

   access_log  /var/www/www.example.com/log/access.log;
   error_log      /var/www/www.example.com/log/error.log info;

   index index.php;

   location / {
        set $php_root /var/www/www.example.com;
        try_files $uri $uri/ /index.php?q=$uri&$args;
        }

   location /blog {
        set $php_root /var/www/www.example.com;
        try_files $uri $uri/ /blog/index.php?q=$uri&$args;
        }

   ## Images and static content is treated differently

   location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|\
rtf|js)$ {
         access_log        off;
         expires           30d;
         root /var/www/www.example.com;
    }

    location ~* \.php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
        include fastcgi_params;
        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_intercept_errors        on;
        fastcgi_ignore_client_abort     on;
        fastcgi_read_timeout 180;

    }


    ## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }
}
upstream backend {
              server 127.0.0.1:9000;

}

O que devo fazer para poder acessar o painel de administração? Eu acho que tem algo a ver com a localização do php, mas agora com certeza o que tocar: (

    
por javipas 08.02.2011 / 17:14

2 respostas

0

Isso não deve funcionar para nenhum PHP. Você define uma variável em um local e depois a utiliza em outro, o que não funciona no Nginx. O escopo herda apenas para baixo, não para cima ou para frente, então http - > servidor - > localização, nunca localização - > localização.

Além disso, não há necessidade de usar uma variável customizada para o PHP root, você deve apenas especificar sua raiz com a diretiva root normal (no contexto do servidor) e então usar a variável interna $ document_root para o seu script SCRIPT_FILENAME fastcgi param.

    
por 09.02.2011 / 09:43
0

Para corrigir essa configuração, defina uma diretiva root no bloco server :

root /var/www/www.example.com;

Em seguida, use o $document_root no seu fastcgi_param :

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

As chamadas set $php_root podem ser removidas. Como observou @MartinFjordvald, eles não fazem nada de qualquer maneira.

    
por 30.07.2012 / 21:59