UbuntuでLEMP環境を構築してWordPressを動かす手順

UbuntuでLEMP環境を構築してWordPressを動かす手順 サーバー構築

「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 のみ開放し、他はブロックする

目次

  1. LEMP 構成とは何か
  2. 前提環境と動作確認済みバージョン
  3. VPS の初期設定(SSH・UFW)
  4. Nginx のインストールと起動確認
  5. MariaDB のインストールとセキュア化
  6. PHP-FPM と WordPress 必須拡張のインストール
  7. Nginx バーチャルホスト設定(PHP-FPM 連携)
  8. WordPress のダウンロードと設置
  9. MariaDB にデータベースとユーザーを作成する
  10. WordPress インストールウィザードを完了させる
  11. よくあるエラーと解決策
  12. まとめ

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 コンテナで行いました。

LEMP スタックのコンポーネントとバージョン一覧(ubuntu:24.04 実測)
LEMP スタックのコンポーネントとバージョン一覧(ubuntu:24.04 実測)

Linux(Ubuntu)以外の 3 つは全て apt でインストールできます。追加リポジトリは不要です。

VPS の初期設定(SSH・UFW)

手順1:VPS に SSH 接続する

Vultr などの VPS コントロールパネルで Ubuntu 24.04 インスタンスを作成したら、ローカル PC から SSH で接続します。セキュリティのため、パスワード認証ではなく ed25519 鍵ペアを使うことを強く推奨します。




ローカル PC: ~
$ ssh-keygen -t ed25519 -C “wordpress@vps”
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)

接続できたら、まずパッケージを最新にします。




ubuntu@server: ~
$ apt update && apt upgrade -y
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 だけ許可すれば十分です。




ubuntu@server: ~
$ ufw allow OpenSSH
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 時点の実測)。




ubuntu@server: ~
$ apt install -y nginx
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!」が表示されれば成功です。

Nginx 設定テスト(nginx -t)とサービス起動確認(実測)
Nginx 設定テスト(nginx -t)とサービス起動確認(実測)

MariaDB のインストールとセキュア化

手順4:MariaDB をインストールする

Ubuntu 24.04 では MySQL ではなく MariaDB 10.11.14(LTS)が標準リポジトリに入っています。WordPress との互換性は完全です。




ubuntu@server: ~
$ apt install -y mariadb-server
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 でセキュア化する

インストール直後のデータベースには匿名ユーザーやテストデータベースが残っています。本番で使う前に必ずセキュア化します。




ubuntu@server: ~
$ 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 本体に加えて以下を一括でインストールします。




ubuntu@server: ~
$ apt install -y \
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
PHP 8.3.6 WordPress必須モジュール確認(ubuntu:24.04 実測)
PHP 8.3.6 WordPress必須モジュール確認(ubuntu:24.04 実測)

全 8 モジュールが揃いました。

次に、WordPressのメディアアップロードが多くなる場合は php.ini の設定を変更します。




ubuntu@server: ~
$ sudo nano /etc/php/8.3/fpm/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 を繋ぐ肝です。




ubuntu@server: ~
$ nano /etc/nginx/sites-available/wordpress



/etc/nginx/sites-available/wordpress
server {
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;
}
}



ubuntu@server: ~
$ ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
$ 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 をダウンロードして設置する




ubuntu@server: ~
$ cd /tmp
$ 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 を作成する




ubuntu@server: ~
$ mariadb -u root -p
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 を設定する




ubuntu@server: ~
$ cd /var/www/wordpress
$ 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 のインストールウィザードが起動します。

WordPress インストールウィザード初期画面(Docker で実際に起動して Playwright 撮影)
WordPress インストールウィザード初期画面(Docker で実際に起動して Playwright 撮影)

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

WordPress インストール情報入力画面(サイト名・管理者情報)
WordPress インストール情報入力画面(サイト名・管理者情報)

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

WordPress 管理ダッシュボード(インストール完了後の初期画面)
WordPress 管理ダッシュボード(インストール完了後の初期画面)

ダッシュボードが表示されたら構築完了です。左メニューから「投稿 → 新規追加」で記事を書き始められます。

著者アイコン
著者アイコン

ダッシュボードのデザインはWordPressのバージョンで変わりますが、左メニューの構成はほぼ同じです。まず「設定 → 一般」でサイトURLが正しく設定されているか確認することをお勧めします。

よくあるエラーと解決策

①「502 Bad Gateway」が表示される

Nginx が PHP-FPM に接続できていません。ソケットファイルのパスが合っているか確認します。




ubuntu@server: ~
$ ls /run/php/
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 サービスが停止しています。




ubuntu@server: ~
$ systemctl status mariadb
$ mariadb -u wpuser -p wordpress
# パスワード入力後、接続できれば資格情報は正しい
Welcome to the MariaDB monitor. …

③「メディアのアップロードに失敗しました」

WordPress ディレクトリの所有者が www-data になっていないケースです。




ubuntu@server: ~
$ ls -la /var/www/ | grep wordpress
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 LEMP + WordPress 構築 完全チェックリスト(全10ステップ)
Ubuntu LEMP + WordPress 構築 完全チェックリスト(全10ステップ)

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 各社のスペック・料金比較や実測ベンチマークは でまとめています。ぜひ合わせてご参照ください。

コメント

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