首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AH01276:无法为目录/var/www/html/提供服务:未找到匹配的DirectoryIndex (index.php、index.html)

AH01276:无法为目录/var/www/html/提供服务:未找到匹配的DirectoryIndex (index.php、index.html)
EN

Stack Overflow用户
提问于 2018-03-22 20:54:58
回答 1查看 32K关注 0票数 4

我试图在docker容器中使用docker-compose获得一个php:apache服务器。但是在compose up之后,我得到了以下错误消息:

代码语言:javascript
复制
[client 172.21.0.1:49230] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive

我的dockerfile:

代码语言:javascript
复制
FROM php:7.1-apache

RUN apt-get update -y
RUN apt-get upgrade -y

RUN apt-get install -y \
        adduser \
        ca-certificates \
        unzip \
        curl \
        git \
        wget \
        openssl

RUN docker-php-ext-install pdo_mysql

# Installiere benötigte PHP Erweiterungen
RUN apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

# Install bcmath
RUN docker-php-ext-install bcmath pcntl

# Install Phalcon-PHP
WORKDIR /phalcon/cphalcon

# https://github.com/phalcon/cphalcon/releases
ENV PHALCON_VERSION "v3.2.1"
RUN curl -L -o "phalcon-${PHALCON_VERSION}.tar.gz" "https://api.github.com/repos/phalcon/cphalcon/tarball/${PHALCON_VERSION}" \
    && tar -xvf "phalcon-${PHALCON_VERSION}.tar.gz" --strip 1 \
    && rm "phalcon-${PHALCON_VERSION}.tar.gz" \
    && cd /phalcon/cphalcon/build \
    && ./install

# Install Phalcon Devtools
WORKDIR /usr/local/lib/phalcon-devtools

# https://github.com/phalcon/phalcon-devtools/releases
ENV PHALCON_DEVTOOLS_VERSION "v3.2.0"
RUN curl -L -o "phalcon-devtools-${PHALCON_DEVTOOLS_VERSION}.tar.gz" "https://api.github.com/repos/phalcon/phalcon-devtools/tarball/${PHALCON_DEVTOOLS_VERSION}" \
    && tar -xvf "phalcon-devtools-${PHALCON_DEVTOOLS_VERSION}.tar.gz" --strip 1 \
    && rm "phalcon-devtools-${PHALCON_DEVTOOLS_VERSION}.tar.gz" \
    && ln -s /usr/local/lib/phalcon-devtools/phalcon.php /usr/bin/phalcon \
    && chmod +x /usr/bin/phalcon

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN chmod +x /usr/local/bin/composer

# Install Dockerize
ENV DOCKERIZE_VERSION v0.5.0
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
    && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz

WORKDIR /usr/src/fileserver

COPY config/apache/apache2.conf /etc/apache2/apache2.conf
COPY config/apache/envvars /etc/apache2/envvars
COPY config/apache/site-default.conf /etc/apache2/sites-available/000-default.conf
COPY config/apache/project.conf /etc/apache2/project.conf
COPY config/php.ini /usr/local/etc/php/

COPY run.sh /run.sh
COPY start_safe_perms.sh /start_safe_perms.sh
RUN chmod 755 /*.sh

RUN a2enmod rewrite
RUN a2enmod headers


VOLUME ["/usr/src/fileserver"]

CMD ["/run.sh"]

docker-compose:

代码语言:javascript
复制
version: '3.1'

services:

fileserver:
    build: fileServer/docker
    container_name: fileServer
    volumes:
      - ./FileServer/:/usr/src/fileserver #/usr/src/app
    ports:
      - "5001:80"

我认为错误来自我的站点-default.config,它通常会覆盖000-default.conf

但是我不知道为什么默认目录是var/www/html。它应该是/usr/src/ fileserver /public/ (如果我在这个容器上执行docker exec,它会显示带有index.php的fileserver文件夹)

site-default.conf

代码语言:javascript
复制
<VirtualHost *:5001>

  DocumentRoot /usr/src/fileserver/public

  <Directory /usr/src/fileserver/public/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog /usr/src/fileserver/docker/logs/error.log
  CustomLog /usr/src/fileserver/docker/logs/access.log combined

</VirtualHost>

有人能帮我吗?(如果需要,请询问更多信息)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-22 21:15:17

看起来您要将端口5001从本地计算机公开到docker实例上的端口80,但随后您要在端口5001上定义虚拟主机。因此,您的site-default.conf可能应为:

<VirtualHost *:80>

注意,这个错误是关于/var/www/html/ (一些Apache默认目录),而不是您自己的/usr/src/fileserver/public

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49429267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档