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.htmlindex.php 文件以便为 apache 提供服务。

【讨论】:

【参考方案2】:

如果您将 apache 文档根目录更改为 /var/www 之外的非标准内容,您将需要在您的虚拟主机中授予访问权限:

DocumentRoot /workspace/my-project

<Directory /workspace/my-project>
    Require all granted
</Directory>

【讨论】:

以上是关于Apache 禁止使用 Docker 访问的主要内容,如果未能解决你的问题,请参考以下文章

Apache 在 htaccess 禁止访问 和 conf 中的 禁止访问 区别

linuxdocker设置禁止外部访问

Apache 虚拟主机,禁止访问。使用 XAMPP OS X

apache设置虚拟主机访问403禁止访问,为啥?

apache2.4 只允许合法域名访问网站 禁止使用ip非法域名访问

Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫