CDSLのirisで動作しているWordPressをGCPのVMに移行する. この記事ではGCPに作ったVMにWordPressの環境を構築する方法を説明する.

環境

以下の環境にWordPressをインストールする.

システム構成

flowchart LR
    d(fa:fa-users エンドユーザ) --> cdsl-vm-2 --> cdsl-vm-1

ハードウェア構成

koyama@cdsl-vm-1:/etc/apt/sources.list.d$ uname -a
Linux cdsl-vm-1 5.15.0-1030-gcp #37-Ubuntu SMP Tue Feb 14 19:37:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
koyama@cdsl-vm-1:/etc/apt/sources.list.d$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

ハードウェアスペックは以下である.

koyama@cdsl-vm-1:~$ free -m
               total        used        free      shared  buff/cache   available
Mem:             965         214         153           3         597         587
Swap:              0           0           0
koyama@cdsl-vm-1:~$ cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU @ 2.20GHz
stepping    : 0
microcode   : 0xffffffff
cpu MHz     : 2200.214
cache size  : 56320 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 1
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa mmio_stale_data retbleed
bogomips    : 4400.42
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 79
model name  : Intel(R) Xeon(R) CPU @ 2.20GHz
stepping    : 0
microcode   : 0xffffffff
cpu MHz     : 2200.214
cache size  : 56320 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 1
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities
bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa mmio_stale_data retbleed
bogomips    : 4400.42
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:
koyama@cdsl-vm-1:~$ df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/root      ext4    49G  2.7G   46G   6% /
tmpfs          tmpfs  483M     0  483M   0% /dev/shm
tmpfs          tmpfs  194M  952K  193M   1% /run
tmpfs          tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/sda15     vfat   105M  6.1M   99M   6% /boot/efi
tmpfs          tmpfs   97M  4.0K   97M   1% /run/user/1003

導入ソフトウェア

  • Nginx 1.23.3
  • PHP-FPM 8.1.2
  • MariaDB 15.1

手順

(1) スワップの導入

以下の手順を参考にswapをセットする.

【GCP】Swapを設定する - Qiita

作業前は以下である.

koyama@cdsl-vm-1:~$  cat /proc/swaps
Filename                Type        Size        Used        Priority

swapファイルを作成する.

koyama@cdsl-vm-1:~$ sudo  dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 19.2487 s, 112 MB/s

swapファイルの権限を600にする.

sudo chmod 600 /swapfile

swaoを有効にする.

koyama@cdsl-vm-1:~$ sudo  mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=48959a52-54a5-4ea0-8ed7-21f78a26183f
koyama@cdsl-vm-1:~$ sudo  swapon /swapfile

/etc/fstabに以下を追加する.

/swapfile swap swap defaults 0 0

作業後は以下である.

koyama@cdsl-vm-1:~$ cat /proc/swaps
Filename                Type        Size        Used        Priority
/swapfile                               file        2097148     0       -2

(2) Nginxのインストール

以下の手順でインストールする.

【Ubuntu Server 22.04】Nginx公式サイトのリポジトリを使用してインストール | VPS Life

バージョンは以下である.

koyama@cdsl-vm-1:~$ nginx -v
nginx version: nginx/1.23.3

永続化と起動をする.

koyama@cdsl-vm-1:~$ sudo systemctl enable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx
[koyama@cdsl-vm-1:~$ sudo systemctl start nginx

(3) phpのインストール

以下の記事を参考にphpをインストールする.

PHP-FPM 8.2でWordPressを動かす - Coyama Wiki

sudo apt install php-cli php-fpm php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-mysql

phpがインストールされたか確認する.8.1.2がインストールされている.

koyama@cdsl-vm-1:~$ php -v
PHP 8.1.2-1ubuntu2.11 (cli) (built: Feb 22 2023 22:56:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.11, Copyright (c), by Zend Technologies

永続化と起動を行う.

sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm

(4) MariaDBのインストール

以下のコマンドでMariaDBをインストールする.

koyama@cdsl-vm-1:~$ sudo apt install mariadb-common mariadb-client mariadb-server

MariaDBのバージョンを確認する.

koyama@cdsl-vm-1:~$ mariadb --version
mariadb  Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

永続化と起動を行う.

sudo systemctl enable mariadb
sudo systemctl start mariadb

(5) wp-cliのインストール

以下の記事を参考にwp-cliをインストールする.

WP-CLI | WP-CLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
sudo install -m 755 wp-cli.phar /usr/local/bin/wp
rm wp-cli.phar

(6) MariaDBの設定

WordPress用のMariaDBアカウントを作成する.

sudo mysql

MariaDBシェルで以下を実行する.

create database wordpress;
create user wp_user@localhost identified by 'YOUR_PASSWORD_HERE';
grant all on wordpress.* to wp_user@localhost;
exit;

(7) php-fpmの設定

アップロード上限を20MBに引き上げる.

sudo sed -i 's/^upload_max_filesize = .*$/upload_max_filesize = 20MB/g' /etc/php/8.1/fpm/php.ini
sudo sed -i 's/^post_max_size = .*$/post_max_size = 20MB/g' /etc/php/8.1/fpm/php.ini

php-fpmの実行ユーザをwww-dataからnginxへ変更する.

sudo sed -i 's/www-data/nginx/g' /etc/php/8.1/fpm/pool.d/www.conf

php-fpmを再起動する.

sudo systemctl restart php8.1-fpm

(8) nginxの設定

ドキュメントルートを作成する.

sudo mkdir -p /var/www/html
sudo mkdir -p /var/www/wordpress

ディレクトリの初期パーミッションを設定する.

sudo chown nginx:nginx -R /var/www

WordPressの初期設定ファイルを配置する.

cd /var/www/wordpress
sudo -u nginx wp core download

WordPressの設定ファイルを生成する.

sudo wp core config --dbhost=localhost --dbname=wordpress --dbuser=wp_user --dbpass=PASSWORD --allow-root