Raspberry PiにNginx、PHP、MariaDB、wp-cliを組み合わせて、複数のWordPressサイトを作成したいと思ったことはありませんか?
この記事では、Raspberry Pi上でWordPressを複数構築し、それぞれをサブディレクトリで管理する方法を、初心者にも分かりやすく解説します。wp-cliを使えば、手作業よりもずっと効率よくセットアップできます。
実際に私がRaspberry Pi B3で試した構成に基づいて、最小限の設定でパーマリンクやテーマのインストールまできちんと動作するようにするポイントも紹介します。
構築環境
- ラズベリーパイ B3 (B3+、4、5)好きなのを選んでください。
- OSはraspbian OS 32ビットデスクトップ(無線ラン固定IPを設定後、デスクトップを非表示にし、SSH接続で設定して行きます)
- 記憶媒体は16メガバイトSDカードです(お好きなもの)
- 今回OSのインストール、固定IPの設定済を前提としてお話して行きますので、まだの方はOSをインストールし固定IPの設定してください。( WordPressはIPアドレスが変わるとうまく表示できなくなりますので必ず固定IPしてください)
✅ GUI(Xウィンドウ)を無効にしてCLIモードで起動
SSHで使う場合、GUIは不要なため「CLI(コンソール)モードのみ」で起動するように設定変更できます。
SSHでRaspberry Pi に接続し、他にも方法がありますが、今回は以下のようにGUIのターゲットを変更。
sudo systemctl set-default multi-user.target
これでCLIのみで起動します。
GUIに戻したいときは。
sudo systemctl set-default graphical.target
設定後
sudo reboot
これで次回以降GUIは起動せず、コンソールモードで起動します。
ワードプレス動作環境を構築
パッケージを最新化
sudo apt update && sudo apt upgrade -y
Nginx をインストール
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
Nginx動作確認
ブラウザにラズベリーパイのプライベートアドレスを入れて下記の情報が表示されれば正しくインストールされてます。

PHPと必要なモジュールをインストール
このコマンドは、PHP本体(php-fpm
)とWordPressの動作に必要な以下の主要モジュールを一括でインストールします。
🔍 php-mysql
は MariaDB との連携に必須
🔍 php-fpm
は Nginx と組み合わせるときに必要
php -v
下記のメッセージが出れば成功です。
PHP 8.2.28 (cli) (built: Mar 13 2025 18:21:38) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.28, Copyright (c) Zend Technologies
with Zend OPcache v8.2.28, Copyright (c), by Zend Technologies
補足
sudo nano /var/www/html/info.php infoファイルを作成して、ブラウザからPHPのインフォメーション表示しようとしても、Nginxの/etc/nginx/sites-available/defaultファイルに、まだ PHPの情報が設定されていないのでアクセスが拒否されます。
php infoをここで作り確認する必要がありません。
MariaDBをインストール(MySQL互換)
インストールします。
sudo apt install mariadb-server -y
MariaDBを設定して行きます
パスワードは任意で設定、最初だけは何もせずエンター、
anonymous users を削除」や「root リモートログインを無効化」は Yes
(すべてYes)
sudo mysql_secure_installation
mariadb確認
sudo systemctl status mariadb
出力例(正常)
mariadb.service - MariaDB 10.11.3 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enab>
Active: active (running) since Mon 2025-05-05 23:07:05 JST; 1 day 21h ago
Docs: man:mariadbd(8)
ここまでで環境は整ってきました。
コントロールCで終了します。
Nginx、PHP設定
/etc/nginx/sites-available/default の設定
nanoエディターで開いて
sudo nano /etc/nginx/sites-available/default
ワードプレスで使えるように下記のように設定します。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html; # WordPressを設置したパスに変更
index index.php index.html index.htm;
server_name _;
client_max_body_size 100M; # アップロード制限(最大100MB)今回100M
location / {
try_files $uri $uri/ /index.php?$args; # パーマリンク対応
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # PHPバージョンに応じて変更
}
location ~ /\.ht {
deny all;
}
}
PHPの最大アップロードサイズを変更する
php.ini
を編集します。
sudo nano /etc/php/8.2/fpm/php.ini
以下の項目を探して、適宜変更します(例:最大100MBにする場合
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
memory_limit = 256M
上記のファイルを探すのが大変ですので(コントロールwで検索窓を表示)upload_max_filesizeを入力して検索すると簡単に見つかります
変更保存したら、PHP-FPMを再起動します。
sudo systemctl restart php8.2-fpm
🧾WordPress用データベースとユーザーの作成
MariaDB にログイン
sudo mariadb
WordPress用のデータベース作成
ここでは例として wordpress
という名前で作成します。
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
WordPress用のユーザーを作成し、パスワードを設定
ユーザー名:wpuser
パスワード:password
(←好きな安全なものにしてください)
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';
作成したユーザーにデータベースへの全権限を付与
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
権限の反映と終了
FLUSH PRIVILEGES;
EXIT;
✅ 完成した情報(控えておきましょう)
項目 | 設定例 |
---|---|
データベース名 | wordpress |
ユーザー名 | wpuser |
パスワード | password |
ホスト | localhost |
この情報は WordPressインストール時に必要になるので、控えておいてください。
wp-cli のインストール
コピペして一括で貼り付け実行しても問題ありません。
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info # 動作確認
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
WordPressのダウンロードと展開
cd /var/www/html
sudo rm index.nginx-debian.html # デフォルトのインデックス削除
インストールするには
通常の開発・学習用(Raspberry Pi など)なら。
sudo wp core download --locale=ja --allow-root
WordPress を運用しているユーザー(通常は www-data
)でコマンドを実行します。
sudo -u www-data -i -- wp core download --locale=ja
設定ファイルの作成とインストール
sudo wp config create \
--dbname=wordpress \
--dbuser=wpuser \
--dbpass='パスワード' \
--dbhost=localhost \
--path=/var/www/html \
--locale=ja \
--allow-root
sudo wp core install \
--url="http://ラズパイのIPアドレス" \
--title="サイトのタイトル" \
--admin_user="adminユーザー名" \
--admin_password="adminパスワード" \
--admin_email="メールアドレス" \
--path=/var/www/html \
--allow-root
パーミッションとオーナーの調整
sudo chown -R www-data:www-data /var/www/html
上記だけでも大丈夫ですがもし不安であれば必要に応じて追加してください。
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
Webブラウザで確認
ラズベリーパイのIPアドレス
WordPressのログイン画面やトップページが表示されれば成功!
複数の WordPress を /var/www/html/ 以下にディレクトリ分けして複数インストールする場合
たとえば
/var/www/html/mywp1
/var/www/html/mywp2
同じデータベースの使用できますが新しく新しいデータベースを一つ制作しておきましょう、例えば下のように作ります。
sudo mariadb
CREATE DATABASE my1_wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON my1_wordpress.* TO 'wpuser1'@'localhost';
FLUSH PRIVILEGES;
EXIT;
項目 | 設定例 |
---|---|
データベース名 | my1_wordpress |
ユーザー名 | wpuser 1 |
パスワード | password |
ホスト | localhost |
まずはディレクトリーを作ります。
sudo mkdir /var/www/html/mywp1
所有者・パーミッション設定
sudo chown -R www-data:www-data /var/www/html/mywp1
sudo find /var/www/html/mywp1 -type d -exec chmod 755 {} \;
sudo find /var/www/html/mywp1 -type f -exec chmod 644 {} \;
wp-cli で簡単に構築
SSH接続中のターミナルで以下を(項目を確認後) そのままコピペOK
データベースは一つですべて動かすことができますが、それぞれ別の新しいデータベースを作って設定してください。
cd /var/www/html/mywp1
sudo wp core download --path=/var/www/html/mywp1 --locale=ja --allow-root
下記の内容が自分の作った環境と、すべて合致してるかよく確認後、実行してください。
sudo wp config create \
--dbname= my1_wordpress\
--dbuser=wpuser1 \
--dbpass='パスワード' \
--dbhost=localhost \
--path=/var/www/html/mywp1 \
--locale=ja \
--allow-root
sudo wp core install \
--url="http://192.168.1.100/mywp1" \
--title="My Site 1" \
--admin_user="admin" \
--admin_password="password" \
--admin_email="you@example.com" \
--path=/var/www/html/mywp1 \
--allow-root
ブラウザからアクセスして動作確認
192.168.x.x/mywp1
にアクセス
📝 まとめ
今回は、Raspberry Piを使ってNginx、PHP、MariaDB、wp-cliを活用し、複数のWordPressサイトをサブディレクトリに構築する方法を解説しました。
この方法で、1台のRaspberry Piで複数のWordPressサイトを効率的作ることができます。さらにwp-cliを使えば、手動での操作を大幅に省力化できます。
ぜひ、あなたもこの手順を試して、Raspberry Piを使ったWordPressの運用に挑戦してみてください!