Configurar o contêiner wordpress no subdiretório com nginx e mariadb

2

Ok, aqui está o problema: eu tenho meu servidor web servindo um site, uma API cms e aplicativo móvel usando uma abordagem de subdiretório como essa

  • localhost - > site
  • localhost / cms
  • localhost / api

tudo é construído usando o docker compose

services:
  server:
    build: ./docker/nginx
    links:
      - fpm
    ports:
      - 80:80
      - 443:443

  fpm:
    build: ./docker/php
    links:
      - database
      - smtp

  database:
    build: ./docker/mariadb
    volumes:
      - dbdata:/var/lib/mysql

volumes:
  dbdata:

O que eu gostaria de fazer é adicionar 2 novos contêineres: um para o wordpress e outro para o wordpress db para que o proxy passe cada solicitação para mydomain.dom / blog para o contêiner wordpress. Eu era capaz de passar o pedido usando uma configuração nginx como abaixo, mas infelizmente eu estou lutando com o contêiner que mantém redirecionando tudo para localhost em vez de localhost / blog, acho que estou faltando alguma configuração no wordpress.

location /blog/ {
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_read_timeout    90;
    proxy_connect_timeout 90;
    proxy_redirect        off;
    proxy_pass http://blog:80; # the wordpress container name

    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $proxy_connection;
    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 $proxy_x_forwarded_proto;
    proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
    proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;

    # Mitigate httpoxy attack (see README for details)
   proxy_set_header Proxy "";
}

# Cms stuff
location /cms/ {
    try_files $uri $uri/ /staff/index.php?$args;

    include _php.conf; # php-fpm setup
}

# Site stuff
location / {

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

    include _php.conf; # php-fpm setup
}
    
por Alessandro Lucarini 26.03.2018 / 16:17

1 resposta

2

Você precisa informar ao WordPress o novo URL base a ser usado. A maneira mais fácil de fazer isso é adicionar as seguintes duas linhas ao wp-config.php no diretório base do wordpress:

define('WP_HOME','http://example.com/blog');
define('WP_SITEURL','http://example.com/blog');
    
por 27.03.2018 / 01:33