ラズパイ5が新しく発売されたので,ラズパイ3B+で運用していたwordpressを新しいラズパイに移行する手順を記録しています.既にラズパイサーバを構築した人向けの記事なのでOSを入れるところはスキップします.基本的なことも含まれているので,必要なところだけ見てください.
以前のラズパイからデータを取り出す
好きなツールを使ってwordpressフォルダー全体とsqlを取り出します.
今回はwordpressのプラグインであるBackWpupを使用しました.取り出したデータは新しいラズパイにアップロードしておきます.
以降は新しいラズパイでの作業です.
ssh周りの設定
sshの設定をします.
sudo vim /etc/ssh/sshd_config
webサーバとして使用するので,Portは22番以外に設定しましょう(著者はセキュリティに詳しいわけではないです).今回は公開鍵認証ですので,パスワード認証もオフにしておきます.
PermitRootLogin no
Port (好きなポート番号)
PasswordAuthentication no
sshの設定を反映するためにサービスを再起動します.ポートを変更した場合は次から接続できないということがないように覚えておきましょう.
sudo service ssh restart
ファイアウォールの設定
公開サーバですので,ファイアウォールの設定が必要な場合は設定します.お好きなもので大丈夫ですが,今回はiptablesを使用します.iptablesは再起動すると消えてしまうので,iptables-persistentも入れます.
sudo apt-get install iptables iptables-persistent
設定は公開できないので以下の記事とかを参考にしながら設定してください.
PHP, apache,データベース(MariaDB)の導入
そのままです.データベースは人によって違うと思いますので,好きなものを入れてください.phpのバージョンは当時のものですので,適宜変更してください.
sudo apt-get install apache2
sudo apt-get install -y php mariadb-server
sudo apt-get install -y php8.2-xml php8.2-gd php8.2-curl php8.2-dom php8.2-mbstring php8.2-zip php8.2-imagick php8.2-mysqlnd php-apc
Apacheのセキュリティ設定を少し変更します.デフォルトではApacheのバージョン等が全部外部から見えてしまうので,以下を変更します.
sudo vim /etc/apache2/conf-available/security.conf
ServerToknes Prod # もともとはFull
設定を変えたらサービスを再起動します.
sudo service apache2 restart
データベースの初期設定
(後から書いているので間違っている可能性あり)
sudo mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL on wordpress.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
データベースを移行します.前のデータベースは/tmp/wordpress.sqlにあるとします.
mysql -u ユーザー名 -p wordpress < /tmp/wordpress.sql
Wordpressの移行
以前のWordpressのデータを解凍して/var/www/htmlの中にコピーします.
先ほど作ったデータベースの名前,ユーザ名,パスワードが以前から変わっていればconfigを変更しておきます.
sudo vim /var/www/html/wp-config.php
DDNSの設定
今回はcloudflareとddclientでDDNS化します.cloudflare以外の方が別の記事を参考にして設定してください.ddclientはインストール時に色々情報の入力を求められるので適当なものを選択します.わからなければ適当に設定して後で変更しましょう.
sudo apt install ddclient
sudo vim /etc/ddclient.conf
中身を変更します.
ssl=yes \
protocol=cloudflare \
use=web, web=https://api.ipify.org/ \
login=(cloudflareのメールアドレス)
zone=(ドメイン)
password='(cloudflareのAPIキー)'
(ドメイン名)
以下を実行してエラーがでなければ設定完了です.
sudo ddclient -v -daemon=0
エラーがなければ自動実行されるようにスケジューリングしておきます.
sudo crontab -e
設定は好きなようにしてください.自分は1時間ごとに更新するように設定しています.
0 * * * * sudo ddclient
SSL設定
今回はlet's encryptで証明書を発行します.
設定の中身は以下の通りですので,参考にしてください.
たぶんここまでできると無事wordpressにアクセスできていると思います.
パーミッション周り
上記までではプラグイン等を入れようとするとFTPがなんとかというエラーがでます.パーミッション周りの設定が原因ですので直します.
sudo chown -R www-data:www-data /var/www/html
たぶんこれで大丈夫ですが,無理そうなら以前のラズパイのパーミッション設定を参考に変更してください.
さいごに
以上で移行完了です.お疲れ様でした.さすがにラズパイ3から5への変更はレスポンスに結構違いがありますね.