apache — Laradock php-fpm apache2 file_get_contents Соединение отклонено

Я запускаю laradock 7.0.0 с многопроектной структурой со следующими контейнерами:

docker-compose up -d apache2

Это будет запускать php-fpm и apache2

Я настроил свой файл hosts для подключения к localhost:

/ и т.д. / хосты

127.0.0.1    myproject.local

Я создал конфигурацию сайта для моего apache2:

laradock / apache2 / сайты / myproject.conf

<VirtualHost *:80>
ServerName myproject.local
DocumentRoot /var/www/myproject/public/
Options Indexes FollowSymLinks

<Directory "/var/www/myproject/public/">
AllowOverride All
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>

Я изменяю настройки php.ini, чтобы URL включал:

laradock / PHP-FPM / laravel.ini

allow_url_include=On

При переходе на myproject.local веб-сайт показывает.
Пока проблем нет. Но когда я делаю file_get_contents, я получаю отказ в соединении:

$json = file_get_contents('http://myproject.local/test.json');
var_dump($json);
exit;

Отклик:

Warning: file_get_contents(http://myproject.local/test.json): failed to open stream: Connection refused in /var/www/myproject/public/test.json

Кажется, что php-fpm не может найти apache2. Когда я получаю IP-адрес контейнера apache2:

docker exec -ti laradock_apache2_1 bash
ifconfig

Результаты в:

eth0 Link encap:Ethernet HWaddr 02:42:ac:16:00:04
inet addr:172.22.0.4

И я изменяю файл hosts на моем php-fpm

docker exec -ti laradock_php-fpm_1 bash
nano /etc/hosts

Добавить правило:

172.22.0.4 myproject.local

Чем работает file_get_contents. Проблема с этим исправлением заключается в том, что IP-адрес контейнера apache2 не всегда одинаков. И мне придется делать это каждый раз для каждого проекта.

Есть ли способ изменить Dockerfile или docker-compose.yml, чтобы связать php-fpm с apache2 для каждого проекта за один раз?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]