![调用.php文件时如何将请求从一个容器重定向到另一个容器](https://linux22.com/image/696051/%E8%B0%83%E7%94%A8.php%E6%96%87%E4%BB%B6%E6%97%B6%E5%A6%82%E4%BD%95%E5%B0%86%E8%AF%B7%E6%B1%82%E4%BB%8E%E4%B8%80%E4%B8%AA%E5%AE%B9%E5%99%A8%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%AE%B9%E5%99%A8.png)
我正在使用 Docker 和 Docker-Compose 在 LAMP 堆栈中工作,但由于无法执行 PHP 文件而陷入困境,这意味着每次尝试时http://localhost/index.php
都会出现以下 403 消息:
Forbidden
You don't have permission to access /index.php on this server.
目前我有两个服务在不同的容器中运行,docker-compose.yml
如下所示:
version: '2'
services:
php-fpm:
container_name: "php-fpm"
build: ../docker-php-fpm
volumes:
- ~/dev:/data/www
httpd:
container_name: "httpd"
build: ../docker-httpd
ports:
- 8080:80
volumes_from:
- php-fpm
links:
- php-fpm
您可能会注意到 PHP-FPM 在一个容器中运行,Apache (httpd) 在另一个容器中运行。容器及其上的服务均已启动并运行。
我在容器上有一个 VirtualHost 文件httpd
,其内容如下:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /data/www
DirectoryIndex index.php
<Directory /data/www>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://php-fpm:9000"
</FilesMatch>
ErrorLog /dev/stderr
CustomLog /dev/stdout combined
</VirtualHost>
此时我不确定问题出在虚拟主机设置上还是容器httpd
无法将.php
文件重定向到php-fpm:9000
。