Apache禁止访问Docker

时间:2017-09-01 12:08:12

标签: 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

在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

当我去localhost。

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

记录回复

  

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

2 个答案:

答案 0 :(得分:13)

看起来apache没有找到要提供的索引页面。确保您的卷映射正确(使用class ShowAllThreads(threading.Thread): def __init__(self, *args, **kwargs): threading.Thread.__init__(self, *args, **kwargs) self.daemon = True # create an instance variable self.musicQueue = False self.start() def run(self): while True: allThreads = threading.enumerate() for i in allThreads: if i.name == "PlayMusic" and i.queue == True: # rebind the instance variable self.musicQueue = True print("Playlist is on") elif i.name == "PlayMusic" and i.queue == False: self.musicQueue = False print("Playlist is off") else: self.musicQueue = False time.sleep(2) 输入图像并检查docker exec文件夹的内容)。如果您的文件在那里,请确保您有一个/var/www/htmlindex.html文件用于提供apache。

答案 1 :(得分:3)

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

DocumentRoot /workspace/my-project

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