✨
docker + apache環境で「No MPM loaded」が出た時の対処
事象
apacheを使って実験をしたかったので、dockerで構築しようとしたところ、コンテナログで下記のエラーが出てコンテナがすぐ終了してしまった。
AH00534: httpd: Configuration error: No MPM loaded.
構成
httpd.confをカスタマイズし、それをコンテナの中にコピーして適用したかった。
/
┣ docker-compose.yaml
┣ dockerfile
┣ httpd.conf
┗ public-html/
┗ index.html
各ファイルの中身
docker-compose.yaml
version: '3'
services:
web:
container_name: web
tty: true
build: .
ports:
- 8000:80
volumes:
- ./public-html/:/usr/local/apache2/htdocs/
dockerfile
FROM httpd:2.4
COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf
上記以外のファイルに関しては今回の問題に関係ないため省略。
原因
コンテナの中からhttpd.confを持ってきて保存した時に、文字コード「UTF16LE」で保存されていてapacheからうまく読み込めていなかった。
Windowsで作業していたため、そうなったのかもしれない。
ちなみに直接原因ではないが、改行コードもCRLFになっていた。
対処
文字コードをUTF8に変更することで解決。
ついでにLinuxなので改行コードもLFにした。
VSCodeが手っ取り早いのでVSCodeを使って変更しました。
Discussion