Sto provando ad aggiornare l'app Laravel 5.2. Per questo sto usando immagini che seguono,Docker apache2 non prenderà in considerazione il nuovo 000-default.conf
php:apache
mysql:5.7
Qui di seguito è il mio 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
E il mio 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
Sia Dockerfile
e docker-compose.yml
sono nella directory radice laravel
. Per eseguire l'applicazione basata su laravel, il server deve fare riferimento alla cartella public
. Così, si può vedere Sto sostituendo il file di configurazione apache2
s' default con sotto 000-default.conf
di file,
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Tutto funziona bene su docker-compose up
comando, ma, quando navigo localhost:9899
ottengo l'errore Forbidden, ma localhost:9899/public
lancia correttamente laravel
app. Ciò significa che il mio 000-default.conf
fornito non ha effetto e il server punta ancora su /var/www/html/
anziché su /var/www/html/public
.
Così ho provato, exec
per entrare nel contenitore in esecuzione per controllare il 000-default.conf
. E potrei vedere il mio file invece di default. Non ho la testa intorno a questo problema. Voglio che apache consideri il mio 000-default.conf
. Spero che voi ragazzi potete vedere cosa sto sbagliando.
file di configurazione in siti abilitati è un link simbolico che punta a file in siti-disponibili –