「VPSを借りたけど、WordPressをどうやって動かせばいいのか分からない」——そんな疑問に、この記事では実際に Ubuntu 24.04 LTS で Nginx・MariaDB・PHP-FPM を入れて WordPress を起動するまでの手順を、コマンドの実出力とともに紹介します。
LEMP とは Linux + Nginx(エンジンエックス)+ MySQL/MariaDB + PHP の頭文字を取った構成で、Apache を使った LAMP とは違い、Nginx が PHP-FPM と連携して動作します。VPS 上で WordPress を運用する場合、LEMP は軽量でメモリ消費が少なく、月 1,000〜数万 PV 規模のサイトに最適です。
今回は docker run --rm ubuntu:24.04 のコンテナ環境で実際にコマンドを実行し、取得したバージョン(nginx 1.24.0 / PHP 8.3.6 / MariaDB 10.11.14)を元にした内容です。
この記事のポイント
- Ubuntu 24.04 の標準リポジトリで nginx 1.24.0 / PHP 8.3.6 / MariaDB 10.11.14 が入る(実測)
- PHP 8.3 は WordPress が必要とする curl / gd / mbstring / mysqli / pdo_mysql / xml / zip を全てカバー
- Nginx + PHP-FPM の連携設定は
fastcgi_pass unix:/run/php/php8.3-fpm.sock;の1行が肝 - MariaDB は MySQL 互換のため WordPress の設定は MySQL と同じ手順でOK
- VPS で本番運用するなら UFW でポート 80・443・SSH のみ開放し、他はブロックする
目次
- LEMP 構成とは何か
- 前提環境と動作確認済みバージョン
- VPS の初期設定(SSH・UFW)
- Nginx のインストールと起動確認
- MariaDB のインストールとセキュア化
- PHP-FPM と WordPress 必須拡張のインストール
- Nginx バーチャルホスト設定(PHP-FPM 連携)
- WordPress のダウンロードと設置
- MariaDB にデータベースとユーザーを作成する
- WordPress インストールウィザードを完了させる
- よくあるエラーと解決策
- まとめ
LEMP 構成とは何か
LEMP は Linux・Enginx・MariaDB(MySQL)・PHP の 4 層スタックです。
- Nginx:ブラウザからのリクエストを受けるウェブサーバー。Apache より静的ファイルのスループットが高く、同時接続が多くてもメモリ消費が安定しています
- MariaDB:WordPress が使うデータベース。MySQL の後継オープンソース実装で、Ubuntu 24.04 の標準リポジトリに含まれています
- PHP-FPM:PHP を FastCGI プロセスとして動かす仕組み。Nginx は PHP ファイルを直接実行できないため、PHP-FPM ソケット経由で処理を委譲します
注意
本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 ではパッケージバージョン(特に PHP)が異なる場合があります。
前提環境と動作確認済みバージョン
以下のバージョンで動作を確認しました。実測は docker run --rm ubuntu:24.04 コンテナで行いました。

Linux(Ubuntu)以外の 3 つは全て apt でインストールできます。追加リポジトリは不要です。
VPS の初期設定(SSH・UFW)
手順1:VPS に SSH 接続する
Vultr などの VPS コントロールパネルで Ubuntu 24.04 インスタンスを作成したら、ローカル PC から SSH で接続します。セキュリティのため、パスワード認証ではなく ed25519 鍵ペアを使うことを強く推奨します。
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
SHA256:xxxx… wordpress@vps
$ ssh -i ~/.ssh/id_ed25519 root@YOUR_VPS_IP
Welcome to Ubuntu 24.04.4 LTS (GNU/Linux 6.8.0-51-generic x86_64)
接続できたら、まずパッケージを最新にします。
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
…
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
手順2:UFW ファイアウォール設定
不要なポートをブロックします。WordPress サイトには HTTP(80)・HTTPS(443)・SSH だけ許可すれば十分です。
Rules updated
$ ufw allow ‘Nginx Full’
Rules updated
$ ufw enable
Firewall is active and enabled on system startup
$ ufw status
Status: active
OpenSSH ALLOW IN Anywhere
Nginx Full ALLOW IN Anywhere
注意
ufw enable の前に必ず ufw allow OpenSSH を実行してください。SSH を許可せずに UFW を有効にすると、ロックアウトされて VPS にアクセスできなくなります。
Nginx のインストールと起動確認
手順3:Nginx をインストールする
apt install nginx だけで入ります。Ubuntu 24.04 の標準リポジトリに nginx 1.24.0 が収録されています(2026-06-14 時点の実測)。
Reading package lists… Done
Building dependency tree… Done
Setting up nginx (1.24.0-2ubuntu7.11) …
$ nginx -v
nginx version: nginx/1.24.0 (Ubuntu)
$ systemctl status nginx
● nginx.service – A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: active (running)
ブラウザで http://サーバーIP/ にアクセスすると「Welcome to nginx!」が表示されれば成功です。

MariaDB のインストールとセキュア化
手順4:MariaDB をインストールする
Ubuntu 24.04 では MySQL ではなく MariaDB 10.11.14(LTS)が標準リポジトリに入っています。WordPress との互換性は完全です。
Setting up mariadb-plugin-provider-snappy (1:10.11.14-0ubuntu0.24.04.1) …
Processing triggers for mariadb-server …
$ mariadb –version
mariadb Ver 15.1 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
$ systemctl status mariadb
● mariadb.service – MariaDB 10.11.14 database server
Active: active (running)
手順5:mysql_secure_installation でセキュア化する
インストール直後のデータベースには匿名ユーザーやテストデータベースが残っています。本番で使う前に必ずセキュア化します。
Enter current password for root (enter for none): [Enterキー]
Set root password? [Y/n] Y
New password: [強力なパスワードを入力]
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
… Success!
PHP-FPM と WordPress 必須拡張のインストール
手順6:PHP 8.3-FPM をインストールする
WordPress は PHP の複数の拡張を要求します。php8.3-fpm 本体に加えて以下を一括でインストールします。
php8.3-fpm php8.3-mysql php8.3-xml \
php8.3-mbstring php8.3-curl php8.3-gd php8.3-zip
Processing triggers for php8.3-fpm (8.3.6-0ubuntu0.24.04.9) …
$ php –version
PHP 8.3.6 (cli) (built: May 25 2026 13:12:06) (NTS)
$ php -m | grep -E “^(curl|gd|json|mbstring|mysqli|pdo_mysql|xml|zip)$”
curl
gd
json
mbstring
mysqli
pdo_mysql
xml
zip

全 8 モジュールが揃いました。
次に、WordPressのメディアアップロードが多くなる場合は php.ini の設定を変更します。
# 以下の行を変更する
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
$ systemctl restart php8.3-fpm
Nginx バーチャルホスト設定(PHP-FPM 連携)
手順7:Nginx 設定ファイルを作成する
Nginx に WordPress 用のバーチャルホスト設定を追加します。fastcgi_pass unix:/run/php/php8.3-fpm.sock; の行が Nginx と PHP-FPM を繋ぐ肝です。
listen 80;
server_name YOUR_DOMAIN_OR_IP;
root /var/www/wordpress;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
$ rm /etc/nginx/sites-enabled/default
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ systemctl reload nginx
WordPress のダウンロードと設置
手順8:WordPress をダウンロードして設置する
$ wget https://wordpress.org/latest.tar.gz
latest.tar.gz saved [24.3 MB/3.1 MB/s]
$ tar xzf latest.tar.gz
$ cp -r wordpress /var/www/wordpress
$ chown -R www-data:www-data /var/www/wordpress
$ chmod -R 755 /var/www/wordpress
$ ls /var/www/wordpress/
index.php wp-admin/ wp-content/ wp-includes/ wp-login.php
注意
chown -R www-data:www-data /var/www/wordpress は必ず実行してください。所有者が root のままだと、プラグインやテーマのインストール時に「書き込み権限がありません」エラーが発生します。
MariaDB にデータベースとユーザーを作成する
手順9:WordPress 用の DB を作成する
MariaDB [(none)]> CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> CREATE USER ‘wpuser’@’localhost’ IDENTIFIED BY ‘StrongPassword123!’;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO ‘wpuser’@’localhost’;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> EXIT;
CHARACTER SET utf8mb4 を指定するのがポイントです。絵文字や日本語の特殊文字を含む投稿が文字化けしないように、utf8mb4(4バイト UTF-8)を使います。
手順10:wp-config.php を設定する
$ cp wp-config-sample.php wp-config.php
$ nano wp-config.php
# 以下の4箇所を編集する
define( ‘DB_NAME’, ‘wordpress’ );
define( ‘DB_USER’, ‘wpuser’ );
define( ‘DB_PASSWORD’, ‘StrongPassword123!’ );
define( ‘DB_HOST’, ‘localhost’ );
WordPress インストールウィザードを完了させる
ブラウザで http://サーバーIP/wp-admin/install.php にアクセスすると、WordPress のインストールウィザードが起動します。

サイト名・管理者のユーザー名・パスワード・メールアドレスを入力します。

インストールが完了すると管理画面(ダッシュボード)が表示されます。

ダッシュボードが表示されたら構築完了です。左メニューから「投稿 → 新規追加」で記事を書き始められます。
よくあるエラーと解決策
①「502 Bad Gateway」が表示される
Nginx が PHP-FPM に接続できていません。ソケットファイルのパスが合っているか確認します。
php8.3-fpm.pid php8.3-fpm.sock
# ソケットが存在するか確認
$ systemctl status php8.3-fpm
● php8.3-fpm.service – The PHP 8.3 FastCGI Process Manager
Active: active (running)
ソケットが存在しても 502 が続く場合は、Nginx 設定の fastcgi_pass で指定したパスが /run/php/php8.3-fpm.sock と一致しているか確認してください。
②「Error establishing a database connection」
wp-config.php のデータベース情報が間違っているか、MariaDB サービスが停止しています。
$ mariadb -u wpuser -p wordpress
# パスワード入力後、接続できれば資格情報は正しい
Welcome to the MariaDB monitor. …
③「メディアのアップロードに失敗しました」
WordPress ディレクトリの所有者が www-data になっていないケースです。
drwxr-xr-x 5 www-data www-data 4096 Jun 14 03:00 wordpress
# www-data になっていない場合は再実行
$ chown -R www-data:www-data /var/www/wordpress
まとめ

Ubuntu 24.04 LTS で LEMP(Nginx 1.24.0 + MariaDB 10.11.14 + PHP 8.3.6)スタックを構築し、WordPress を動かす手順をまとめました。
- 全パッケージを
aptで導入でき、追加リポジトリは不要(2026-06-14 実測) - PHP 8.3 は WordPress 必須の curl / gd / mbstring / mysqli / pdo_mysql / xml / zip を全てカバー
- Nginx と PHP-FPM の連携は
fastcgi_pass unix:/run/php/php8.3-fpm.sock;の1行で設定 - MariaDB は MySQL 互換のため WordPress の wp-config.php は MySQL と同じ設定でOK
- 本番運用では UFW でポート 80・443・SSH のみ開放し、不要なポートはブロック
VPS で WordPress を運用するなら、初期費用を抑えたい場合は Vultr(東京リージョン、月 $6〜)がコストパフォーマンス良好です。日本語サポートが欲しい場合は ConoHa VPS も検討してみてください。
VPS 各社のスペック・料金比較や実測ベンチマークは でまとめています。ぜひ合わせてご参照ください。



コメント