禁止使用PHP-403的Docker

禁止使用PHP-403的Docker,php,windows,docker,Php,Windows,Docker,今天我决定从流浪汉转到Docker,但我在访问localhost:8080时遇到了403禁止的错误 我的文件结构: learning-php // root folder dockerconfig virtualhosts.conf web index.php docker-compose.yml 这是我的docker-compose.yml文件: web: image: php:7.0-apache ports: - "8080:80"

今天我决定从流浪汉转到Docker,但我在访问localhost:8080时遇到了403禁止的错误

我的文件结构:

learning-php // root folder
  dockerconfig
    virtualhosts.conf
  web
    index.php
  docker-compose.yml    
这是我的docker-compose.yml文件:

web:
  image: php:7.0-apache
  ports:
    - "8080:80"
  volumes:
    - .:/var/www/html
    - ./dockerconfig/virtualhosts.conf:/etc/apache2/sites-enabled/virtualhosts.conf
  links:
    - mysql
mysql:
  image: mysql:5.7
  ports:
    - "3307:3306"
  environment:
    MYSQL_ROOT_PASSWORD: 123456
    MYSQL_USER: dev
    MYSQL_PASSWORD: 123456
    MYSQL_DATABASE: mydb
这是我的dockerconfig/virtualhosts.conf文件:

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /var/www/html/web
  DirectoryIndex index.php

  <Directory /var/www/html/web>
    AllowOverride All
    Require all granted
    Options FollowSymLinks
    <IfModule mod_rewrite.c>
        Options -MultiViews
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>

  </Directory>

</VirtualHost>

服务器名本地主机
DocumentRoot/var/www/html/web
DirectoryIndex.php
允许超越所有
要求所有授权
选项如下符号链接
选项-多视图
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php[QSA,L]
在我的index.php中,它只是对phpinfo的调用。 我使用Windows 10作为操作系统


请帮助我找到问题所在。

在Windows docker上,docker在VM中运行,因此暴露的端口(8080)不在本地主机上,而是在docker主机VM上。运行
docker machine ip
将ip获取到虚拟机,然后打开
http://docker-ip:8080
在web浏览器中Windows docker在虚拟机中运行,因此暴露的端口(8080)不在本地主机上,而是在docker主机虚拟机上。运行
docker machine ip
将ip获取到虚拟机,然后打开
http://docker-ip:8080
在web浏览器中