
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 pass
a 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, /blog
entã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.txt
no meu terminal, está tudo bem e posso ver o conteúdo do license.txt
arquivo, /var/www/blog/
mas index.php
não carregado, index.html
que 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".