【发布时间】:2018-02-26 14:37:46
【问题描述】:
我尝试通过 unix 套接字设置 Apache2 和 PHP-FPM,但结果是
(111)连接被拒绝:AH02454:FCGI:尝试连接到 Unix 域套接字 /run/php/php7.2-fpm.sock (*) 失败
docker-compose.yml
version: "2"
services:
php:
build: "php:7.2-rc-alpine"
container_name: "php"
volumes:
- "./code:/usr/local/apache2/htdocs"
- "./php7.2-fpm.sock:/run/php/php7.2-fpm.sock"
apache2:
build: "httpd:2.4-alpine"
container_name: "apache2"
volumes:
- "./code:/usr/local/apache2/htdocs"
- "./php7.2-fpm.sock:/run/php/php7.2-fpm.sock"
ports:
- 80:80
links:
- php
www.conf
listen = /run/php/php7.2-fpm.sock
httpd-vhosts.conf
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
但是通过 TCP 连接时它可以工作。
www.conf
listen = 127.0.0.1:9000
httpd-vhosts.conf
<FilesMatch \.php$>
SetHandler "proxy:fcgi://php:9000"
</FilesMatch>
【问题讨论】:
-
你看到主机上正在创建的套接字文件吗?
-
是的,所有的 apache、php 都使用 uid 和 gid 500 来处理。与 php7.2-fpm.sock 的所有者相同
-
您能否提供一个我可以测试的示例存储库
标签: php apache sockets docker docker-compose