🔰 はじめに
本記事では、AlmaLinux 9 Minimal 環境にて、UNIX ソケットを使用した LNMP (Linux + Nginx + MariaDB + PHP)構成での WordPress 構築手順を解説します。
通常、WordPress は MariaDB に TCP 接続しますが、UNIX ソケットを使うことでパフォーマンスの向上とセキュリティ強化が期待できます。
⚙️ システム準備
sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y nginx mariadb-server mariadb php php-fpm php-cli php-mysqlnd php-common php-mbstring php-xml php-curl php-gd php-json php-zip unzip wget policycoreutils-python-utils
📌 サービスの起動と有効化
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
🔐 MariaDB のセットアップ(UNIX ソケット認証)
sudo mysql_secure_installation
プロンプトに従って以下を設定してください:
- Enter current password for root: (空のまま Enter)
- Switch to unix_socket authentication? → Y
- Change the root password? → N
- Remove anonymous users? → Y
- Disallow root login remotely? → Y
- Remove test database and access to it? → Y
- Reload privilege tables now? → Y
📂 WordPress 用のデータベース作成
sudo mysql -u root
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'nginx'@'localhost' IDENTIFIED VIA unix_socket;
GRANT ALL PRIVILEGES ON wordpress.* TO 'nginx'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚡ PHP-FPM の設定(UNIX ソケット使用)
sudo vi /etc/php-fpm.d/www.conf
以下の内容を修正:
user = nginx
group = nginx
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
設定を反映:
sudo systemctl restart php-fpm
🚀 Nginx の設定
sudo vi /etc/nginx/conf.d/wordpress.conf
以下の内容を追加:
server {
listen 54321;
server_name yourdomain.com;
root /var/www/html/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
設定確認と適用:
sudo nginx -t
sudo systemctl restart nginx
📥 WordPress のダウンロードとセットアップ
cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xvzf latest.tar.gz
sudo chown -R nginx:nginx /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
📝 wp-config.php の編集
cd /var/www/html/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.php
以下の行を編集:
define('DB_NAME', 'wordpress');
define('DB_USER', 'nginx');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost:/var/lib/mysql/mysql.sock');
🔒 セキュリティ強化
sudo setsebool -P httpd_can_network_connect_db on
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
🔥 ファイアウォールの設定
以下のコマンドでは、「XXX.XXX.XXX.XXX」部分はリバースプロキシサーバーのIPアドレスに置き換えてください。
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="リバースプロキシのIPアドレス" port protocol="tcp" port="54321" accept'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="54321" accept'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" reject'
sudo firewall-cmd --reload
🌐 WordPress にアクセス
ブラウザで以下にアクセスします:
http://yourdomain.com:54321
インストール画面に従って WordPress のセットアップを完了してください 🎉
✅ まとめ
- MariaDB は UNIX ソケット認証を使用
- PHP-FPM と Nginx は UNIX ソケットで通信
- ファイアウォールはリバースプロキシとローカルネットワークのみ許可
これで高速 & セキュアな WordPress 環境が完成です!🎉
コメント