docker exec -it myapp bashコマンドで AH00534: apache2: Configuration error: No MPM loaded.エラーが出る
環境
構築する環境は以下の通りです。
ホスト
Docker 20.10.10
コンテナ
PHP 7.3
Apache 2.4
MySQL 5.7.29
PHPMyAdmin
症状
一通りファイルを作成した後に'''$ docker-compose up'''コマンドでコンテナ起動し、myappフォルダの作成を確認して必要なファイルを作成した後にphpコンテナに接続しようと思い
docker exec -it myapp bash
コマンドを実行した際にタイトルのようなエラーログが出てしまいうまく実行できなく、myappコンテナの起動状態もrunningにならないといったものです。おそらくうまくmpmがロードできないからこのようなエラーが出てるのかと思いますが、調べてみても解決策が出てこなく途方に暮れてたので質問しました。
mysqlは正常に起動しrunningになり、指定したmyappフォルダも無事作成されました。
下記がそれぞれのファイルの記述内容です。
構成
projaect
├── docker
│ ├── docker-compose.yml
│ └── php-apache
│ ├── apache2.conf
│ └── php.ini
│ └── Dockerfile
└── myapp (Laravelプロジェクト)
├── app
・・・
└── startup.sh
ファイル記述内容
Dockerfile↓
FROM php:7.3-apache
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN apt-get update && apt-get install -y \
unzip \
libzip-dev \
zlib1g-dev \
&& docker-php-ext-install \
zip \
pdo_mysql \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& a2enmod rewrite
COPY ./apache2.conf /etc/apache2/apache2.conf
COPY ./php.ini /usr/local/etc/php/php.ini
WORKDIR /var/www/myapp
apache2.confはコンテナ内から該当のファイルをコピーしてきて下記を追加しました。
project/docker/php-apache/apache2.conf
~省略~
<VirtualHost *:80>
ServerName myapp.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/myapp/public
<Directory "/var/www/myapp">
AllowOverride All
</Directory>
</VirtualHost>
project/docker/docker-compose.yml
version: "3"
services:
mysql:
image: mysql:5.7.29
container_name: mysql
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: default
MYSQL_USER: default
MYSQL_PASSWORD: secret
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
app:
build: php-apache
container_name: myapp
ports:
- '8000:80'
volumes:
- ../myapp.:/var/www/myapp:cached
myapp/.env.example
DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
myapp/startup.sh
cp .env.example .env
composer install
touch /var/www/myapp/storage/logs/laravel.log
chmod -R 777 /var/www/myapp/storage
chmod -R 777 /var/www/myapp/bootstrap
php artisan key:generate
php artisan migrate
php artisan db:seed
0