0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerでCentOS8+apache2.4+php8.0環境を作成しWordpressを動かす環境を作る

Posted at

前回、「DockerでCentOS8+apache2.4+php7.4環境を作りwordpressを動かす環境を作る」というタイトルでDockerfileを作ってから約1年半。PHPのバージョンも8.0に更新されていたので、後述する理由もありタイトルにある環境を作りました。

基本は1年半前の記事からそれほど変わっていないのですが、この記事のDockerfileを作成するまで色々ありましたので、記事として残しておきます。
やっぱり1年半も経つと少しは変わりますよね。。。

DockerでCentOS8+apache2.4+php8.0環境を作る

Dockerfileについて

DockerFleとして用意したのは下記のとおりです。

# docker-hubからOSのイメージ引込
FROM centos:latest

# サーバの日付合わせ
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# GPGキーのインストール
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

# epel-releaseのインストール
RUN dnf install -y epel-release &&\
    dnf clean all

# remiのインストール
RUN dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

# dnfのアップデート
RUN dnf update -y &&\
    dnf clean all

# 必要なモジュールのインストール(apache)
RUN dnf -y install httpd &&\
    dnf clean all

# 必要なモジュールのインストール(php8.0)
RUN dnf -y install php80-php php80-php-mysqli php80-php-gd php80-php-mbstring php80-php-opcache php80-php-xml php80-php-pear php80-php-devel php80-php-pecl-imagick php80-php-pecl-imagick-devel php80-php-pecl-zip

# phpコマンドを作成
RUN ln /usr/bin/php80 /usr/bin/php

# wordpressインストールディレクトリの所有者をapacheユーザに変更                                              
RUN chown -R apache:apache /var/www/html

# pho80-php-fpmのサービス永続化
RUN systemctl enable php80-php-fpm

# apache サーバのサービス永続化
RUN systemctl enable httpd

# 接続用ポートの穴あけ
EXPOSE 80

Dokerfileの細かな内容、前回の記事からの変更点についてはDockerfileの補足で説明していますのでそちらもご覧ください。

dockerイメージの作成

Dockerfileの保存ディレクトリで下記のコマンドを実行

docker build -t wordpress:0.0.1 ./

-tのあとはタグ名なので、wordpressで動かすことを考えてwordpress:0.0.1としました。

dockerコンテナの起動

イメージができたらコンテナを起動。

 docker run --privileged --name wordpress -p 80:80 -v [localhostのディレクトリ]:/var/www/html -itd wordpress:0.0.1 /sbin/init

ブラウザで起動確認

dockerコンテナ起動時に指定した「localhostのディレクトリ」にwordpressのモジュールを入れておくと下記のように「wordpressへようこそ」画面が出るはず。ここまでくれば、この記事のゴールです。

スクリーンショット 2020-04-02 21.19.17.png

PHPのバージョンを7.4 → 8.0に上げるだけだったのですがなかなか大変でした。ちょくちょく更新しないとですね。

Dockerfileの設定の補足

docker-hubからOSのイメージ引込

FROM centos:latest

OSコンテナの引き込みですね。前回はバージョンを固定していましたが、今回はlatestにしました。
いちいちバージョンを書き換えないでいいので、こちらのほうが良いかなと。

サーバの日付合わせ

RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

コンテナの時刻を日本時間に合わせるコマンドです。
ログなどを保管する際、時刻がおかしなことになっていると色々と面倒なので、必要な設定となりますね。

epel-releaseのインストール

RUN dnf install -y epel-release &&\
    dnf clean all

インストールは前の記事とは変わりませんが、コマンドをyum →  dnf に変更しました。

GPGキーのインストール

RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

後続のdnf updateを実行するときにエラーが出ていろいろ調べました。
GPGをインポートしていないと行けないようです。インポートしているファイル自体はOSに付属していますが、明示的にインポートしないといけません。
OSのバージョンによってファイル名が変わるようで「rpm-gpg-key-centos-8」というファイル名の記事や情報もありましたが、自分の場合はここで書いたファイル名でした。

dockerファイルのビルド中で「ls /etc/pki/rpm-gpg」と入れてファイル名を確認したりもしました。

remiのインストール

RUN rpm -ivh http://ftp.riken.jp/Linux/remi/enterprise/remi-release-8.rpm

phpをインストールするためにremiレポジトリをインストールする必要があります。
PHP8.0もPHP7.4と同じで良かったみたいです。

dnfのアップデート

RUN dnf update -y &&\
    dnf clean all

dnfのアップデートは必須作業なので、apache、php7.4のインストール前に実行しておきます。

必要なモジュールのインストール(apache)

RUN dnf -y install httpd &&\
    dnf clean all

apacheのインストールはyum経由ですので特に何も設定は必要ありませんね。

必要なモジュールのインストール(php8.0)

RUN yum -y install php80-php php80-php-mysqli php80-php-gd php80-php-mbstring php80-php-opcache php80-php-xml

ここは74⇨80に書き換えのみ。

phpコマンドを作成

RUN ln /usr/bin/php80 /usr/bin/php

ここも74⇨80に書き換えのみ。

wordpressインストールディレクトリの所有者をapacheユーザに変更

RUN chown -R apache:apache /var/www/html

apacheサーバの起動ユーザに合わせてwordpress配置ディレクトリのオーナーを変更。

php80-php-fpmのサービス永続化

RUN systemctl enable php80-php-fpm

ここも74⇨80に書き換えのみ。

apache サーバのサービス永続化

RUN systemctl enable httpd 

apacheもphp-fpm同様サービスとして常に起動するように設定しました。

接続用ポートの穴あけ

EXPOSE 80

http接続できるように80番のポートを開けます。https化を狙って443も開けておく必要がありますが、それはこれからGWまでの課題ですね。

今後の課題

raspberry Pi4 を購入してKubernetesをインストールしてみて、何を動かそうかと考えたところ1年半前の記事を思い出してまずやこれかなと。
PHPのバージョンが変わっていることも知っていたので、ついでに記事を更新した次第です。

なにかの参考になれば幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?