借りていたサーバーを移転しなければならないので、新たにVPSを借りてブログのデータを移行していました。
せっかくだからOSは題名の通りUbuntuに変えました。環境の練習になるので。
Ubuntuのログイン方法はCentOSとは異なるから注意。
慌ててOSの再ダウンロードとかしないように。
まずは、ログイン方法としてユーザー名は、[root]ではなく[ubuntu] であることに注意。
そして、スーパーユーザーに昇格するためにrootのパスワードを作成する必要があります。
passwd root
上記で新しいパスワードを設定した後に su - コマンドから設定したパスワードを入力するとroot権限になります。
参考
https://qiita.com/_toki/items/cced337d72103ed4387c
この後はssh接続方法を公開鍵認証方式にするとかやりますが、ミドルウェアのインストールで失敗とかしたら
最悪OSの再インストールとか面倒なので、先にデータベースをインストールしました。
MariaDBのインストールは下記サイトの通りに進めています。
https://www.server-world.info/query?os=Ubuntu_20.04&p=mariadb&f=1
Apache2とかPHPも上記サイトのカテゴリを参考にしてインストールしました。
ミドルウェアを落とすと次に必要なのは、データです。
まず、移転元のサーバーにssh接続をして、WordPressの対象データをアーカイブ圧縮します。
私の場合はドキュメントルート以下と証明書のファイルをアーカイブして圧縮しました。
tar -czvf アーカイブ.tgz 対象ファイル
ファイルのアーカイブを作成しgzip形式で圧縮する
次にデータベースをダンプします。
mysqldump --opt データベース名 > 適当なデータベース名
上記のデータをFTP等を利用して新サーバーに転送します。
新サーバーでは、データを入れるためにmysqlにログインし、
データベースを作成します。
mysql -u ユーザー名 -pパスワード
create database データベース名
mysqlから接続を遮断後、データベースをリストアします。
mysql 作成したデータベース < ダンプデータベースファイル名
リストアの確認はmysqlにログイン後、対象のデータベース内のテーブルを確認してみたらいいと思います。
次にドキュメントルート以下にファイルを解凍
tar -xzvf アーカイブ.tgz
gzipで圧縮されたアーカイブを展開する
この後はWordPressのコンフィグファイルの設定でパスワード等をいじったら、サイトの確認をしてください。
http://対象のIP で確認できると思います。
私の場合は、サイト内で下記エラーが発生していました。
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
エラーに従ってMySQLの拡張モジュールをインストールしました。
apt -y install php-mysql
その後、サイトを確認すると
データベースの接続ができません
のエラーに変化していました。
大抵はWordPressのコンフィグファイルのパスワードの打ち間違いとかですが、そうでもなく少しハマりました。
色々調べたところ、WordPressのコンフィグファイルのhostname を localhost から 127.0.0.1 に変えたところ
サイト内が重大なエラーが発生と表示が変わりました。
上記の場合、Apache内のエラーログを確認したら原因がわかります。
今回の場合、とあるpluginからエラーが発生していたのでそれの権限を000にするとサイトが正常に表示されました。
サイトが見れたからいいものの、コードをみやすくするためのプラグインだったので少し不便になりましたw
代わりのプラグイン見つけないと......
次に証明書の設置です。
下記サイトが参考になりました。
https://blog.fileshelfplus.com/vps/280
少しハマったところは、新サーバーのサイト内に証明書の期限が有効であるのに証明書としては無効であること。
結果的にDNSサーバーのAレコードを移転元から移転先に変更すれば問題なく証明書が有効となりました。
これでひとまずはデータ移行の終了です。
その他参考
ubuntuでcronの設置
https://intellectual-curiosity.tokyo/2018/10/12/ubuntu%E3%81%A7%E3%81%AEcron%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/
ubuntuでファイアウォールの設置
https://lifework-blog.com/ubuntu-server-firewall/