nginx instala wordpress em /blog no meu endereço de domínio

nginx instala wordpress em /blog no meu endereço de domínio

Eu tenho um domínio example.com, ele atende meu site usando o servidor da web nginx que aponta para uma porta 3000 do docker container nodejs usando proxy passa opção em /local.

server {
    listen 80 default_server;
    server_name example.com www.example.com;
    index index.php index.html;
    access_log /var/log/nginx/access_example.com.log;
    error_log /var/log/nginx/error_example.com.log;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

agora quero adicionar um site wordpress, /blogentão adicionei essas configurações no bloco do servidor.

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location /blog {
        root /var/www;
        try_files $uri $uri/ =404;
    }

Por que não consigo acessar o wordpress recém-instalado /var/www/blog/ se executo curl http://example.com/blog/license.txtno meu terminal, está tudo bem e posso ver o conteúdo do license.txtarquivo, /var/www/blog/mas index.phpnão carregado, index.htmlque adicionei para teste.

Acho que o problema está na try_files $uri $uri/ =404;linha, mas não encontrei nada útil. Qualquer ajuda será apreciada

Responder1

Como você provavelmente sabe, o Wordpress usa uma arquitetura de front controller - ou seja, o ponto de entrada para executar qualquer script PHP é $WORDPRESS_ROOT/index.php. Você precisa dizer ao nginx para rotear as solicitações de acordo:

try_files $uri $uri/ /blog/index.php?$args;

Observe que as solicitações para a maior parte do conteúdo estático seriam tratadas por um dos 2 primeiros valores. Não há manipulador 404, pois o Wordpress precisa lidar com o cenário em si.

mas index.php não carregado

hmmm, não é uma descrição muito significativa do que aconteceu - ou seja, você explicitamente solicitou ..../index.php ou apenas .../ ? Que resposta você obteve? O que estava em seus registros?

Há muitas configurações necessárias para PHP (e para a maioria dos manipuladores fcgi), que geralmente são incluídas em outras partes da sua configuração. No Ubuntu, eu esperava que isso já estivesse em vigor se instalado a partir do repositório, mas seria aconselhável testar isso. Eu também sugeriria abordar isso ANTES de fazer a modificação do controlador frontal acima, pois isso complicará um pouco as coisas. Use um script PHP simples "olá mundo".

informação relacionada