きゃまメモ

(自分用のメモであったり、何かしらアップしたり)

Dockerのコンテナ(CentOS7)に Nginx + Wordpress + MariaDB 環境を構築する

2018.05.18
docker centos nginx wordpress mariadb

ホストでcentos7のコンテナを起動し、アクセスする

docker run -dit -p 49154:80 --name wordpress centos:7
docker exec -it wordpress bash

コンテナで作業する

yum update -y
yum install -y initscripts vim wget unzip

MariaDBをインストールする

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
yum install -y MariaDB-server
/etc/init.d/mysql start
/usr/bin/mysqladmin -u root password '{パスワード}'

Nginxをインストールする

vim /etc/yum.repos.d/nginx.repo
...
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
priority=1
...

yum -y install nginx

phpをインストールする

yum -y install epel-release

vim /etc/yum.repos.d/epel.repo
...
enabled=0
...

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
vim /etc/yum.repos.d/remi.repo
enabled=0

vim /etc/yum.repos.d/remi-safe.repo
...
enabled=0
...

yum -y install --enablerepo=remi,epel,remi-php70 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlnd php-fpm

php-fpmの設定と起動

# vim /etc/php-fpm.d/www.conf
...
+ user = nginx
+ group = nginx
...

mkdir /run/php-fpm
php-fpm

wordpressのダウンロード

cd /usr/share/nginx
wget https://ja.wordpress.org/latest-ja.zip
unzip -q latest-ja.zip
chown nginx:nginx -R /usr/share/nginx/wordpress

nginxの設定と起動

vim /etc/nginx/conf.d/default.conf
...
server {
  listen 80;
  root /usr/share/nginx/wordpress;
  location / {
    index  index.php index.html index.htm;
  }
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}
...

nginx -s reload

wordpress用のデータベースを作成する

mysql -uroot -ppassword
drop database wp;
CREATE DATABASE wp;
use wp;
GRANT ALL PRIVILEGES ON wp.* TO "root"@"127.0.0.1" IDENTIFIED BY "{パスワード}";
FLUSH PRIVILEGES;

wordpressの管理画面からインストールする http://{ホスト}:49154/wp-admin/install.php

ここまでのコンテナのサイズ

# docker ps -as
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES               SIZE
06607fb815fc        centos:7            "/bin/bash"         31 minutes ago      Up 31 minutes       0.0.0.0:49154->80/tcp     wordpress           1.44GB (virtual 1.63GB)