Я пытаюсь докровать приложение 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
. Надеюсь, вы, ребята, увидите, что я делаю неправильно.
файл конфигурации сайтов с поддержкой является символическим, что указует на файл в местах, доступно –