DockerでWebアプリ環境構築
はじめに
本記事は動画( https://youtu.be/vY2z-fOOh6s )で説明に使用している
スライドを記事化したものです。動画と合わせて御覧ください。
※記事化する際に補足説明を加筆しており、内容は動画のスライドと異なります。
※本記事の内容は2020年3月時点の内容となります。OSやミドルウェア、Dockerのバージョンが異なることで記載通りの内容で完了しない場合があります。
構築する環境の構成
- O S : Cent OS 7.7
- Webサービス : Apache 2.4.6
- DBサービス :MariaDB 10.4.6
- Webアプリ言語:PHP 7.3.x
OSの準備
前回の動画: https://www.youtube.com/watch?v=oT-GSZD8bE4
前回の動画の概要:Dokcerインストール、CentOSのインストール。
1. コンテナ起動
dos > docker run --privileged -d -p 22:22 -p 80:80 -p 8080:8080 -p 443:443 --name [作成コンテナ名] [イメージ名] /sbin/init
dos > docker exec -it [コンテナ名] /bin/bash
コンテナ > yum update
- ユーザの追加
root > useradd [ユーザ名]
root > passwd [ユーザ名]
- SSHインストールと接続!
root > yum install openssh-server
root > systemctl enable sshd.service
root > systemctl start sshd.service
接続はTeraTermをインストールして接続。
Webサービスの準備
- Apacheをインストール
root > yum install httpd
root > yum install httpd
※CentOS標準のapacheをインストール
DBサービスの準備
- MariaDBリポジトリの追加
root > curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
- MariaDBのインストール
root > yum install MariaDB-server
※MariaDBパッケージにアップデートがある場合は
root > yum update MariaDB-server
- DBサーバの設定
root > vi /etc/my.ini/
- サーバ自動起動の設定とサーバ起動
root > systemctl enable mariadb
root > systemctl start mariadb
- ユーザの設定
root > mysql
mysql > GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql > FLUSH PRIVILEGES;
Webアプリ言語のインストール
- リポジトリの追加
> yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
- バージョンの確認
> yum info --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
- PHPインストール
> yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
- PHPのインストール確認
> php -v
Webサービスの設定
- ドキュメントルートの設定
root > mkdir /var/www/webapp
root > chown takemi:takemi webapp
root > vi /etc/group
root > curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
root > yum install MariaDB-server
※MariaDBパッケージにアップデートがある場合は
root > yum update MariaDB-server
root > vi /etc/my.ini/
root > systemctl enable mariadb
root > systemctl start mariadb
root > mysql
mysql > GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
mysql > FLUSH PRIVILEGES;
- リポジトリの追加
> yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
- バージョンの確認
> yum info --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
- PHPインストール
> yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
- PHPのインストール確認
> php -v
Webサービスの設定
- ドキュメントルートの設定
root > mkdir /var/www/webapp
root > chown takemi:takemi webapp
root > vi /etc/group
root > mkdir /var/www/webapp
root > chown takemi:takemi webapp
root > vi /etc/group
takemi: x :1000: → takemi : x : 1000 : apache
※takemiはadduser作成した一般ユーザです。adduserしたタイミングでユーザと同名のグループも作成されます。
root > systemctl restart httpd
user > vi /var/www/webapp/index.html
<html>
<head>
<title>Takemi Index</title>
</head>
<body>
<div>Test Page</div>
</body>
</html>
root > vi /etc/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
設定の確認
ブラウザでhttp://<コンテナのIP>にアクセスするPHPの動作確認
ブラウザでhttp://<コンテナのIP>にアクセスするPHPの動作確認
user > vi /var/www/webapp/info.php
<?php phpinfo();
ブラウザで http://<コンテナのIP>/info.php にアクセスする。
phpinfo()の内容が表示される。
以上です!
これでHTMLもPHPも動作し、Webアプリの環境が整いました!
おつかれさまでした~
Author And Source
この問題について(DockerでWebアプリ環境構築), 我々は、より多くの情報をここで見つけました https://qiita.com/takemi77505234/items/897c126843624608188e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .