O contêiner Docker do Wordpress redireciona minha solicitação da porta 8000 para 80

1

Estou tentando mover meu blog wordpress de um hoster para meu próprio servidor. Eu queria usar o docker para essa tarefa.

No meu servidor executa nginx que hospeda um número de serviços não relevantes para esta questão. Eu uso o seguinte script para criar um contêiner.

#!/bin/bash

docker create --name blog \
--net bridge \
-e WORDPRESS_DB_HOST=192.168.170.11 \
-e WORDPRESS_DB_USER=USER \
-e WORDPRESS_DB_PASSWORD=PASSWORD \
-e WORDPRESS_DB_NAME=wordpress \
-v /var/www/wordpress:/var/www/html \
-p 8000:80 \
wordpress

A conexão do banco de dados funciona e o apache2 está em execução. Mas não consigo acessar o wordpress.

Quando tento acessar localhost:8000 , me redireciona para a porta 80 onde nginx está escutando. Por quê? Quero me conectar à porta 80 (apache2) dentro do contêiner.

O mesmo quando eu tento isso de fora (se firewall para baixo).

Outro problema é o firewall: a porta 8000 / tcp está aberta para todos os IPs, mas minhas solicitações externas ainda estão bloqueadas. O que devo abrir para este contêiner docker?

Executando Docker version 17.05.0-ce, build 89658be em Debian Stretch .

Editar:

root@server:~/docker# curl -v http://localhost:8000
* Rebuilt URL to: http://localhost:8000/
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8000 (#0)
> GET / HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.52.1
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Mon, 12 Feb 2018 20:08:48 GMT
< Server: Apache/2.4.25 (Debian)
< X-Powered-By: PHP/7.2.1
< Set-Cookie: PHPSESSID=b03c4c1ba164bef366c49e1b1b5abc1c; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate
< Pragma: no-cache
< Set-Cookie: PHPSESSID=7293f22e5c860504a429b070d0ad21e4; path=/
< Location: http://localhost/
< Content-Length: 0
< Content-Type: text/html; charset=UTF-8
< 
* Curl_http_done: called premature == 0
* Connection #0 to host localhost left intact

Eu não tenho cola o que está me encaminhando aqui. O Apache2 está dentro da janela de encaixe. Não há arquivo .htaccess e não modifiquei a imagem.

    
por Corni 11.02.2018 / 09:48

2 respostas

3

Por um minuto, pare seu nginx, rode este container com -p 80:80. Isso permitirá que você acesse o Wordpress /wp-admin/ ; deve haver uma propriedade chamada algo como "Minha URL principal". Altere para http://localhost:8000/ e salve.

Isso fará com que o Wordpress redirecione (via HTTP 301) qualquer visitante para http://localhost:8000/ se o Apache está ou não escutando naquela porta.

Em seguida, docker commit da sua personalização e execute a imagem confirmada em -p 8000:80

    
por 13.02.2018 / 00:46
0

Edite o arquivo de configuração wp-config.php

É possível definir o site da URL manualmente no arquivo de configuração wp-config.php .

Adicione estas duas linhas ao seu wp-config.php, onde "example.com" é o domínio do seu site.

define( 'WP_HOME', 'http://example.com' );
define( 'WP_SITEURL', 'http://example.com' );
    
por 19.11.2018 / 19:43