ラズベリーパイにWordpressをインストールする。ただしインターネット公開向けではなく内部保守(バックアップなど)向けとして構築。セキュリティの考慮無し。既存データがある前提で復元を行う。
基本的なラズベリーパイのセットアップは済んでいる前提
Webサーバインストール
Apacheのインストール
Webサーバ系(Apache)のインストールを行う。aptで簡単に入る。
sudo apt install -y apache2 ~ apache2 -v
バージョンが表示されれば問題ない(2025/09時点で2.4.65が入った)
また、この時点でブラウザで「http://{ホスト名}.local」でアクセスすると、デフォルトページが出るはず。apacheがうまく動いているようだ。ザで「http://{ホスト名}.local」でアクセスすると、デフォルトページが出るはず。apacheがうまく動いているようだ。

PHPのインストール
phpのインストールを行う。こちらもaptで簡単に入る。
sudo apt install -y php ~ php -v
バージョンが表示されれば問題ない(2025/09時点で8.2.7が入った)
php8.2向けのモジュールを入れる。
sudo apt install -y php8.2-curl php8.2-dom php8.2-mbstring php8.2-imagick php8.2-zip php8.2-fpm php8.2-mysql php8.2-xml php8.2-intl
以下を実施してテストページを表示させてみる。
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
上記コマンドを実施してから、「http://{ホスト名}.local/info.php」でアクセスすると、php情報ページが表示されればOK。

データベースのインストール
MySQL(MariaDB)のインストール
MySQL(mariaDB)のインストールを行う。こちらもaptで簡単に入る。
sudo apt install -y mariadb-server ~ sudo mysqladmin version
バージョンが表示されれば問題ない(2025/09時点で10.11.3が入った)
以下を実施してログインしてみる。
sudo mysql -uroot -p # パスワードを聞いてきたらEnterのみ入力 show databases; #データベース一覧表示 quit
ひとまずログインだけ確認できれば良い。
WordPressのインストール
データベースの準備
WordPress向けのデータベースの準備を行う。既存Wordpressの復元を行う場合は、既存WordpressのDB情報を取得しておき、それに合わせたDBを作成する。
※{}を置き換える
sudo mysql -uroot -p # パスワードを聞いてきたらEnterのみ入力 #データベースを作成。復元時は復元元のデータベース名とする create database {データベース名}; # ユーザ名とパスワード作成。復元時は復元元のデータベースと合わせる create user '{DBユーザ}'@localhost identified by '{DBパスワード}'; # 権限付与 grant all privileges on {DBユーザ}.* to '{DBユーザ}'@'localhost'; # 終了 quit
これで、データベースの枠だけはできた。
WordPressファイルの復元
WordPressのインストールを行う。ここでは復元を行う前提とする。
まずは、復元元のバックアップファイルを準備する。
各種ファイルとDBデータがバックアップされている前提とする。
(BackWpUpでファイルとDBがバックアップされている想定)
バックアップファイルをSCPなどでラズベリーパイにコピーする。tarやzipなどでまとめた状態のものをコピーするのが楽。
ファイルをコピーしたら解凍する。tarの場合は以下参考。
# 指定フォルダに解凍 sudo tar -xvf {ファイル名}.tar -C /var/www/html # 権限更新 sudo chown -R www-data:www-data /var/www/html
次にDB接続情報を確認しておく。
復元ではなく新規作成時は、設定修正は必須。
「wp-config.php」ファイルをnanoで開いて、DB接続情報を(以下の{}部分)確認する。
sudo nano wo-config.php # 以下の場所を確認 ~ // ** Database settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', '{データベース名}' ); /** Database username */ define( 'DB_USER', '{ユーサ名}' ); /** Database password */ define( 'DB_PASSWORD', '{パスワード}' ); /** Database hostname */ define( 'DB_HOST', 'localhost' ); /** Database charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The database collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' ); /**#@+ ~
問題なければ終了し、変更あれば修正して保存する。これでweb向けファイルの配置は完了。ただしもう少し調整は必要。
データベースの復元
復元を行う場合はDBの復元を行う。
*.sqlのDBバックアップファイルを準備しておき、下記を実行してデータベースの復元を行う。
# データベースの復元 sudo mysql -u {ユーザ名} -p {データベース名} <{バックアップファイル名.sql} # パスワードを聞いてくるので入力する
これで、データベースが復元されたが、このままでは使えないので、下記で更新を行う。、
データベースの書き換え
データベースを本番環境とは違う環境に復元した場合は、データベース内にリンク情報としてもとの情報が残っている。
例:http://aaa.co.jp ⇒ http://test.local
といった違い。これらをの更新が必要だが、単純な置換ではできない内容もあるようなので、ツールを使用して書き換えを行う。
Githubにつないだら、下図のように「Code」⇒「Download ZIP」でダウンロードするとよい。

ダウンロードしたら、ラズベリーパイにおいて、そのままwebフォルダにコピーする。
# 解凍 unzip Search-Replace-DB-4.1.4.zip # webにコピー sudo cp -r Search-Replace-DB-4.1.4 /var/www/html # 権限付与 sudo chown -R www-data:www-data /var/www/html
コピーできたら、PCブラウザでアクセスしてみる。
今回は「Search-Replace-DB-4.1.4」のフォルダだったので、このフォルダに対してアクセスを行う。
http://{ホスト名}.local/Search-Replace-DB-4.1.4
以下のような画面が出ればよい。

では、変換情報を入力してデータベース更新を行う。
入力項目 | 入力値 |
---|---|
replace | 復元元のURL(https://wp.co.jpなど) |
with | 今回のURL(http://xxx.localなど) |
database name | DB名 |
username | DBユーザー名 |
pass | DBパスワード |
host | localhost |
port | 未入力 |

入力したら、まずはデータベース設定の下にある「Test Connection」のボタンを押して、DB接続が可能かをチェックする。

設定内容や、webサーバに問題が無ければ、下図のよう「Success」になる。

では、問題なければ、下にある「Search and Replace」ボタンを押す。DB更新の警告メッセージが出るのでOKを押す。

すると、データベースの更新が開始される。データ量にもよるが少し時間かかるので放置して待つ。
「Search and Replace」ボタンがグルグルしているうちは、実行中らしい。

更新が終了すると、ボタンの表示が元に戻る。

ワーニングが出てくるが、「Incomplete or ill-typed serialization data~」といったエラーメッセージは無視してよいらしい。
最後に、削除ボタンを押しておくとよい。DBを書き換えできるアプリなので、残すのはセキュリティ上危険。
ただし、安全な環境の場合や、これ以降に本番DB登録を行うなどの予定がある場合は、残しておいても良い。

.htaccessの修正
復元を行った場合は、webフォルダに.htaccessファイルも置いていることとなる。ローカルでhttpsではなくhttpでの環境になる場合は、.htaccessファイルの更新が必要。
sudo nano .htaccess # 以下の場所を修正 ~ 修正前 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> ~ 修正後 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
RewriteRuleの個所の、「https」の部分を「http」に書き換える。
完了
これで、作業は完了。
http://{ホスト名}.localでアクセスすれば、web画面が表示されるはずだ。