第3話

docker-composeでRockyLinux+Apache2.4+PHP8の開発環境を作ってみた

こんにちは!Takuya.B(@TB_IQ)です。

docker-composeでRockyLinux+Apache2.4+CentOS8の環境を作る方法です。

スポンサーリンク

ディレクトリ構成/必要なファイル

ディレクトリ構成

├── docker
│   └── Dockerfile
├── docker-compose.yml
└── html

docker-compose.yml

まず、 docker-compose.yml の作成。

version: '3.7'
services: 
  web:
    build: "./docker"
    container_name: "rockylinux"
    ports:
      - 80:80
    volumes:
      - "./html:/var/www/html"
    privileged: true

Dockerfile

FROM rockylinux/rockylinux:latest

RUN dnf -y update && dnf clean all

# apache2.4のインストール
RUN dnf -y install httpd

# php8のインストール
RUN dnf -y install epel-release
RUN dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
RUN dnf -y module install php:remi-8.0
RUN dnf -y install php php-devel php-mbstring php-pdo php-gd

# enable service.
RUN systemctl enable httpd

CMD ["/sbin/init"]

dockerを起動する

ファイル類の作成が完了したら、以下コマンドを入力してdockerを起動しましょう。

docker-compose up -d 

ブラウザで確認する

ブラウザで http://localhost/ にアクセスし、上記画面が表示されれば環境構築は完了です。

503エラーが表示される場合の対処法

http://localhost/ にアクセスした際に以下の503エラーが表示されることがあります。

503 Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems.
Please try again later.

その場合は以下手順で解消します。

1. コンテナ内部に入る

まずはコンテナ内部に入ります。

docker exec -it rockylinux bash

# もしくは以下
docker-compose exec web bash

2. /etc/httpd/conf.modules.d/00-mpm.conf を編集する

以下コマンドを入力してviエディタを起動します。

vi /etc/httpd/conf.modules.d/00-mpm.conf

以下のmod_mpm_prefork.so の行頭の# を削除してコメント解除します。

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
 ↓
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so:

次に以下のmod_mpm_event.so の行頭に# を記述してコメントアウトします。

LoadModule mpm_event_module modules/mod_mpm_event.so
 ↓
#LoadModule mpm_prefork_module modules/mod_mpm_event.so

ファイルを修正したら最後に以下コマンドを入力して、Apacheを再起動しましょう。

systemctl restart httpd

スポンサーリンク

あとがき

CentOSのサポート終了するけどCentOS Streamは使いたくないって方は是非とも参考にしてみてください!

というわけで、次回もよしなに!