Laradock php fpm apache2文件\u获取\u内容连接被拒绝
我已经使用多项目结构运行了laradock 7.0.0,其中包含以下容器:Laradock php fpm apache2文件\u获取\u内容连接被拒绝,php,apache,docker,laradock,Php,Apache,Docker,Laradock,我已经使用多项目结构运行了laradock 7.0.0,其中包含以下容器: docker-compose up -d apache2 它将运行php fpm和apache2 我已将我的主机文件配置为连接到本地主机: /etc/hosts 127.0.0.1 myproject.local 我已经为我的apache2创建了一个站点配置: laradock/apache2/sites/myproject.conf <VirtualHost *:80> ServerName
docker-compose up -d apache2
它将运行php fpm和apache2
我已将我的主机文件配置为连接到本地主机:
/etc/hosts
127.0.0.1 myproject.local
我已经为我的apache2创建了一个站点配置:
laradock/apache2/sites/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>
当转到myproject.local时,将显示网站。
到目前为止没有问题。但是,当我执行文件获取内容时,我得到的连接被拒绝:
$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。当我获得apache2容器的ip地址时:
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
我在php fpm上修改hosts文件
docker exec -ti laradock_php-fpm_1 bash
nano /etc/hosts
添加规则:
172.22.0.4 myproject.local
比文件内容更有效。此修复程序的问题在于apache2容器的ip并不总是相同的。每一个项目我都要这样做
有没有办法修改Dockerfile或docker-compose.yml,以便一次将每个项目的php fpm链接到apache2?现在有更好的解决方案。laradock/docker-compose.yml服务:apache2:网络:前端:后端:别名:-myproject.local
172.22.0.4 myproject.local