Vagrant + CentOS 7.9 + MariaDB 10.5 + nginx 1.20 + php 7.4 + php-fpm で WordPress を設置

WordPress を試してみる
以下の構成で確認した
- Windows 10
- VirtualBox 最新
- Vagrant 最新
-- CentOS 7.9
--- MariaDB 10.5 (10.6だと早すぎてutf8まわりで問題が起きてるっぽい)
--- nginx 1.20
--- php 7.4
--- php-fpm
ローカルPCの hosts ファイルに以下を追記します。
192.168.56.50 wp.example.com
[git bash]
$ mkdir wpvm
$ cd wpvm
初期化
$ vagrant init centos/7
Vagrantfile確認
$ vi Vagrantfile
----------------
config.vm.box = "centos/7"
config.vm.network "private_network", ip: "192.168.56.50" # 自身のPCに合わせて適宜
----------------
$ vagrant up
$ vagrant ssh
[VM内]
バージョン確認
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
OSアップデート
$ sudo yum update
日本時刻に設定変更
$ timedatectl status
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl status
MariaDB 10 のインストール
インストール済みのmariadb関連ライブラリをいったんアンインストール
$ sudo yum remove mariadb*
インストール手順の確認ができるサイト
https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&mirror=ossplanet
リポジトリを追加
$ sudo vi /etc/yum.repos.d/MariaDB.repo
----------------
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
----------------
インストール
$ sudo yum install MariaDB-server MariaDB-client
ステータス確認(バージョン確認)
$ systemctl status mariadb
起動
$ sudo systemctl start mariadb
自動起動設定
$ sudo systemctl enable mariadb
MariaDBの高速化のためチューニング
$ sudo vi /etc/my.cnf.d/server.cnf
----
[mysqld]
innodb_buffer_pool_size = 768M
query_cache_size = 192M
----
あたりを。
再起動
$ sudo systemctl restart mariadb
一般ユーザーでmariadbにログイン可能か確認
$ mysql
>mysql exit

初期設定
$ mysql_secure_installation
Enter current password for root (enter for none): 現状ノンパスなのでリターン
Switch to unix_socket authentication [Y/n] n
ここでrootユーザのパスワード設定になる。ここでは開発用なので root とする。
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDBにログイン
$ mysql -uroot -p
Enter password:
utf8mb4形式でデータベース作成します
mysql> CREATE DATABASE wpdb DEFAULT CHARACTER SET utf8mb4;
データベースユーザー作成
mysql> CREATE USER 'wpdbuser'@'localhost' IDENTIFIED BY 'WpDbUserPass1!';
アクセス権限設定
mysql> GRANT ALL PRIVILEGES ON wpdb.* TO 'wpdbuser'@'localhost' IDENTIFIED BY 'WpDbUserPass1!';
DBに設定を反映させる
mysql> FLUSH PRIVILEGES;
mysql> exit
php 7.4 のインストール
$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum install yum-utils
$ yum list php*
$ sudo yum-config-manager --enable remi-php74
$ sudo yum install php php-mbstring php-pdo php-mysqlnd php-xml
$ php -v
PHP 7.4.21 (cli) (built: Jun 29 2021 15:17:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
nginxインストール
リポジトリ登録
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
インストール
$ sudo yum install nginx
バージョン
$ nginx -v
nginx version: nginx/1.20.1
起動テスト
$ sudo nginx -t
ステータス確認
$ sudo systemctl status nginx
起動
$ sudo systemctl start nginx
ステータス確認
$ sudo systemctl status nginx
ブラウザからアクセスしnginxのデフォルトページが表示されることを確認する
http://wp.example.com/
自動起動設定
$ sudo systemctl enable nginx
Wordpressのインストール
$ cd /var/www
$ sudo curl -OL https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar zxfv latest-ja.tar.gz
$ sudo rm -rf latest-ja.tar.gz
設定
$ sudo vi /etc/nginx/conf.d/wordpress.conf
----------------
server {
listen 80;
server_name wp.example.com;
root /var/www/wordpress;
index index.php;

location ~* /wp-config.php {
deny all;
}

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
root /var/www/wordpress;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
----------------
Wordpressの設定ファイルを適宜編集
$ sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
$ sudo vi /var/www/wordpress/wp-config.php
----------------
define('DB_NAME', 'wpdb');
define('DB_USER', 'wpdbuser');
define('DB_PASSWORD', 'WpDbUserPass1!');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
----------------
$ sudo chown -R nginx:nginx wordpress
php-fpmの設定
$ sudo yum install php-fpm
$ sudo vi /etc/php-fpm.d/www.conf
----------------
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
----------------
ステータス
$ sudo systemctl status php-fpm
起動
$ sudo systemctl start php-fpm
ステータス
$ sudo systemctl status php-fpm
自動起動
$ sudo systemctl enable php-fpm
セッションディレクトリのパーミッションを手当する
$ sudo chown -R nginx:nginx /var/lib/php/session/
phpinfo確認
$ sudo vi /var/www/wordpress/phpinfo.php
----------------