Apache 禁止使用 Docker 访问
Posted
技术标签:
【中文标题】Apache 禁止使用 Docker 访问【英文标题】:Apache forbidden access with Docker 【发布时间】:2018-02-10 12:07:03 【问题描述】:我在 docker-compose.yml 上构建这个镜像
version: '2'
services:
webserver:
build: ./docker/webserver
image: image_name
ports:
- "80:80"
- "443:443"
volumes:
- /Users/user_name/Sites/site:/var/www/html
并且在 Dockerfile 上有这个命令
FROM php:7-apache
RUN apt-get update -y && apt-get install -y libpng-dev && apt-get
install -y libcurl4-openssl-dev
RUN docker-php-ext-install pdo pdo_mysql gd curl
RUN a2enmod rewrite
RUN service apache2 restart
但我明白了
Forbidden
You don't have permission to access / on this server.
Apache/2.4.10 (Debian) Server at localhost Port 80
当我去本地主机时。
我使用 Mac。 我已经将 docker 文件用于其他项目并且一切都很好。 我错过了什么?
日志响应
无法提供目录 /var/www/html/:没有匹配的 DirectoryIndex (index.php,index.html) 找到,和服务器生成的目录索引 选项指令禁止
【问题讨论】:
日志是怎么说的? @whites11 感谢您的回复。编辑了日志响应的问题。 【参考方案1】:看起来 apache 没有找到要服务的索引页面。确保您的卷映射正确(输入带有docker exec
的图像并检查/var/www/html
文件夹的内容)。如果您的文件在那里,请确保您有一个 index.html
或 index.php
文件以便为 apache 提供服务。
【讨论】:
【参考方案2】:如果您将 apache 文档根目录更改为 /var/www
之外的非标准内容,您将需要在您的虚拟主机中授予访问权限:
DocumentRoot /workspace/my-project
<Directory /workspace/my-project>
Require all granted
</Directory>
【讨论】:
以上是关于Apache 禁止使用 Docker 访问的主要内容,如果未能解决你的问题,请参考以下文章
Apache 在 htaccess 禁止访问 和 conf 中的 禁止访问 区别
Apache 虚拟主机,禁止访问。使用 XAMPP OS X