Соединения с обратной связью HTTP не включены на этом сервере - WordPress на Docker - PullRequest
1 голос
/ 06 марта 2019

У меня есть официальный контейнер WordPress с док-портом 80, сопоставленным с 32795 внешними ... когда я захожу в область администрирования WordPress, я получаю эту ошибку:

Внимание! Соединения с обратной связью HTTP не включены на этом сервере. Если вам нужно связаться с вашим веб-хостом, скажите им, что когда PHP пытается подключиться к сайту по URL-адресу http://localhost:32795/wp-admin/admin-ajax.php, и он получает ошибку cURL error 7: Failed to connect to localhost port 32795: Connection refused. Может быть проблема с конфигурацией сервера (например, проблемы с локальным DNS, mod_security и т. Д.), Препятствующая нормальной работе соединений.

Я думаю, что проблема в том, что сайт внутри контейнера пытается связаться с портом 32795 вместо 80, но не может, потому что эта дверь видна только снаружи контейнера ...

Я создал скрипт внутри сайта с помощью phpinfo и проверил, что петлевые соединения включены ...

Есть решение для этого? У меня есть докер и Windows с Kitematic

спасибо

1 Ответ

0 голосов
/ 06 марта 2019

Проблема внутри контейнера, открытый порт 80, и докер выставляет 32795 для внешних подключений

Конфигурация WordPress указывает на порт 32795, вы можете открыть порт 80, выполнив docker run -p 80:80 и изменить конфигурацию WordPress для использования порта 80

Если вы не можете использовать порт :80 немного более сложным решением является использование iptables внутренней переадресации портов

Пример

➜  ~  docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW -p 5000:80 nginx                
835b039cc92bd9f32b960181bf370d39869c88f5a757423966b467fe01ac219e                          
➜  ~  docker exec -it 835b039cc92bd9 bash                                                 
root@835b039cc92b:/# apt update -qqq ; apt install iptables -yqqq 
root@835b039cc92b:/# iptables -t nat -A OUTPUT -o lo -p tcp --dport 5000 -j REDIRECT --to-
port 80
root@835b039cc92b:/# apt install telnet -yqqq
root@835b039cc92b:/# telnet localhost 5000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
root@835b039cc92b:/# exit

# from outside the container
➜  ~  telnet localhost 5000                                               
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
...