我已经为 Drupal 设置了一个 Docker 环境,其中包含三个服务:Drupal、MySQL 和 phpMyAdmin。当我尝试在端口 8085 上访问 Drupal 时,遇到“403 Forbidden Error”。以下是我的 docker-compose.yml 配置:
services:
drupal:
image: drupal:9
container_name: drupal
ports:
- "8085:80"
volumes:
- ./drupal:/var/www/html
depends_on:
- db
networks:
- drupal-network
db:
image: mysql:5.7
container_name: drupal-db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
volumes:
- db-data:/var/lib/mysql
networks:
- drupal-network
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin-drupal
ports:
- "8081:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: root
depends_on:
- db
networks:
- drupal-network
volumes:
db-data:
networks:
drupal-network:
driver: bridge
问题描述:
When I try to access Drupal on http://localhost:8085, I get a "403 Forbidden" error.
The drupal container starts successfully, and I can see the logs, but Drupal doesn’t load.
phpMyAdmin works fine on port 8081.
我尝试过的事情: 使用 docker-compose restart 重新启动所有容器。 验证 MySQL 凭据是否正确以及 Drupal 是否已正确配置为连接到数据库。
任何人都可以建议为什么我可能会收到“403 Forbidden”错误以及如何解决它?
我不是网络开发人员,但错误相当明显:
drupal | [Sun Nov 17 16:42:43.247661 2024] [autoindex:error] [pid 17] [client 172.21.0.1:48032] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
您需要将一些基本的index.html放入./drupal或删除 这个:
volumes:
- ./drupal:/var/www/html
从 docker-compose.yml 使用默认安装程序。