AlmaLinux 9 で UNIX ソケットを使用した WordPress 構築手順

Uncategorized

🔰 はじめに

本記事では、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 環境が完成です!🎉

コメント

タイトルとURLをコピーしました