Apache禁止访问Docker

3 apache docker server

我在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
Run Code Online (Sandbox Code Playgroud)

并在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
Run Code Online (Sandbox Code Playgroud)

但是我明白了

Forbidden

You don't have permission to access / on this server.
Apache/2.4.10 (Debian) Server at localhost Port 80
Run Code Online (Sandbox Code Playgroud)

当我去localhost.

我和Mac合作.我已经将docker文件用于其他项目,并且都运行良好.我错过了什么?

记录响应

无法提供目录/ var/www/html /:找不到匹配的DirectoryIndex(index.php,index.html),以及Options指令禁止的服务器生成的目录索引

whi*_*s11 15

看起来apache没有找到要服务的索引页面.确保您的卷映射正确(输入图像docker exec并检查/var/www/html文件夹的内容).如果您的文件在那里,请确保您有一个index.html或几个index.phpapache文件.


Tim*_*Tim 6

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

DocumentRoot /workspace/my-project

<Directory /workspace/my-project>
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)