2016-02-16 2 views
5

Я пытаюсь докровать приложение Laravel 5.2. Для этого я использую следующие изображения,Docker apache2 не рассмотрит новый 000-default.conf

php:apache 
mysql:5.7 

Ниже мой docker-compose.yml

web: 
    build: . 
    volumes: 
    - ./:/var/www/html 
    ports: 
    - "9899:80" 
    links: 
    - db 
    command : [/usr/sbin/apache2ctl, -D, FOREGROUND] 

db: 
    image: mysql:5.7 
    volumes: 
    - /home/data:/var/lib/mysql 
    environment: 
    MYSQL_DATABASE: custom 
    MYSQL_ROOT_PASSWORD: custom 

И мой Dockerfile

FROM php:apache 
RUN apt-get update && docker-php-ext-install pdo pdo_mysql 
RUN rm -f /etc/apache2/sites-available/000-default.conf 
ADD ./settings/000-default.conf /etc/apache2/sites-available 

Dockerfile Оба и docker-compose.yml находятся в каталоге laravel корня. Чтобы запустить приложение на основе laravel, сервер должен указать папку public. Таким образом, вы можете видеть, я заменить файл конфигурации apache2 «s по умолчанию с ниже 000-default.conf файла,

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/public 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Все работает отлично на docker-compose up команды, но, когда я просматриваю localhost:9899 я получаю Запретный ошибку, но localhost:9899/public запускает laravel приложение правильно. Это означает, что мой поставленный 000-default.conf не имеет эффекта, и сервер по-прежнему указывает на /var/www/html/ вместо /var/www/html/public.

Поэтому я попробовал, exec, чтобы попасть в рабочий контейнер, чтобы проверить 000-default.conf. И я мог видеть мой файл, а не по умолчанию. Я не понимаю эту проблему. Я хочу, чтобы apache рассмотрел мой 000-default.conf. Надеюсь, вы, ребята, увидите, что я делаю неправильно.

ответ

3

Apache не ищет в каталоге sites-available, а находится в каталоге sites-enabled. Вы можете ADD ваш конфиг-файл в последний каталог, или создать символическую ссылку:

ADD ./settings/000-default.conf /etc/apache2/sites-available 
RUN ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf 
+0

файл конфигурации сайтов с поддержкой является символическим, что указует на файл в местах, доступно –