私は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
フォルダを指している必要があります。だから、あなたは
、私は000-default.conf
ファイルの下でapache2
のデフォルトの設定ファイルを置き換えています
<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
を参照するとき、私はForbiddenになったが、
localhost:9899/public
は正しく
laravel
アプリを起動します。つまり、私の提供した
000-default.conf
は効果がなく、サーバーはまだ
/var/www/html/public
の代わりに
/var/www/html/
を指しています。
だから、exec
を試して、実行中のコンテナに入り、000-default.conf
を確認してください。そして、デフォルトの代わりに私のファイルを見ることができました。私はこの問題の周りに頭を上げていません。私はApacheが私の000-default.conf
を考慮してほしい。皆さん、私が間違っていることを皆さんに見ていただければ幸いです。
設定ファイルの中のファイルを指すシンボリックリンクのサイトは、利用可能です –