我正在使用 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
。