Dockerを使ってAlmaLinuxでLAMP環境を構築する!
下記の記事を実行するにはDockerを予めインストールしておく必要があります。
構築する環境情報
項目 | 名称 | バージョン |
---|---|---|
OS | AlmaLinux | 8.9 |
DB | MariaDB | 10.2.11 |
Webサーバ | Apache | 2.4.x |
アプリ言語 | PHP | 7.4 |
本記事で作成する環境は上記の通り。
Dockerfileの内容
Dockerfile
# almalinuxのイメージを利用する
FROM almalinux/almalinux
LABEL maintainer=Takemi
SHELL ["/bin/bash", "-o", "pipefail", "-c"]"
# 累積アップデートの実行
RUN dnf -y upgrade
#ROOTパスワード
RUN echo "root:docker123" | chpasswd;
#takemiユーザが存在していない場合ユーザ追加する
RUN echo 'make user takemi'
RUN adduser -m takemi;echo "takemi:takemi123" | chpasswd;
#sshのインストール
RUN dnf install -y openssh-server
RUN systemctl enable sshd
#これが実行できない
#Apacheのインストール
RUN dnf install -y httpd
RUN systemctl enable httpd
#MariaDBのインストール
RUN dnf install -y mariadb-server mariadb
RUN systemctl enable mariadb
#PHP 7.4
# https://www.tsuda1.com/blog/2020/09/08/php%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
RUN dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
RUN dnf -y module install php:remi-7.4
RUN yum -y install php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
#DocumentRoot作成
RUN mkdir /var/www/webapp
RUN chown takemi /var/www/webapp
RUN chgrp takemi /var/www/webapp
RUN chmod 774 /var/www/webapp
RUN gpasswd -a apache takemi
上記の内容をローカルの作業フォルダにdockerfileというファイル名で保存。(※拡張子は無し)
構築の実行
下記のコマンドを実行して自動構築!
> docker build . -t webapp:almalinux
イメージの実行
下記コマンドでイメージを実行!
> docker run --privileged -d -p 22:22 -p 80:80 -p 8080:8080 -p 443:443 --name webapp_alma webapp:almalinux /sbin/init
実行が成したら、Apacheの設定を行ってドキュメントルートなどの設定をお好きにどうぞ!
Apacheの設定
下記コマンドでApacheの設定を編集
root > vi /etc/httpd/conf/httpd.conf
下記の設定項目を変更する
httpd.conf
DocumentRoot=/var/www/html → DocumentRoot=/var/www/webapp
<Directory “/var/www/html”> → <Directory “/var/www/webapp”>
Options Indexes FollowSymLinks → Options Indexes FollowSymLinks ExecCGI
AllowOverride None → AllowOverride All
Apache再起動して設定を反映。
※再起動しないと設定は反映されません
> systemctl restart httpd