2016-02-16 2 views
5

Ich versuche, Laravel 5.2 App zu docken. Dafür ich folgende Bilder verwenden,Docker Apache2 wird nicht als neue 000-default.conf betrachten

php:apache 
mysql:5.7 

Unten ist mein 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 

Und mein 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 

Beide Dockerfile und docker-compose.yml sind im laravel Stammverzeichnis. Um eine Laravel-basierte App auszuführen, muss der Server auf den Ordner public verweisen. So können Sie sehen, ich bin zu ersetzen apache2 ‚s Standard-Konfigurationsdatei mit unter 000-default.conf Datei,

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

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

Alles läuft gut auf docker-compose up Befehl aber, wenn ich localhost:9899 durchsuchen ich Forbidden Fehler, aber localhost:9899/public startet laravel App richtig. Das bedeutet, dass mein geliefertes 000-default.conf keinen Effekt hat und der Server immer noch auf /var/www/html/ statt /var/www/html/public zeigt.

So versuchte ich, exec in laufenden Container zu bekommen, um die 000-default.conf zu überprüfen. Und ich konnte meine Datei anstelle von Standard sehen. Ich verstehe diesen Punkt nicht. Ich möchte, dass Apache meine 000-default.conf berücksichtigt. Ich hoffe, ihr könnt sehen, was ich falsch mache.

Antwort

3

Apache schaut nicht in das Verzeichnis sites-available, sondern in das Verzeichnis sites-enabled. Sie können entweder ADD Ihre config-Datei in diesem Verzeichnis oder einen symbolischen Link einrichten:

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

Konfigurationsdatei in sites-enabled ist ein symbolischer Link, der in der Datei verweist sites-available –

Verwandte Themen