blog を見ている人には基本的に関係のない話ですが、自鯖(この blog が動いているサーバ)の OS (distro) を CentOS 6 から Ubuntu 18.04 LTS に変更しました。

なんで変更したのかというと、 WordPress が PHP / MySQL のサポートバージョンを変更する関係で、Wordpress 5.1 以降では古い PHP (5.6 未満)を使っている環境に対して(管理画面で)警告を出すようになったからです(スクリーンショット撮り忘れた)。CentOS 6 では PHP 5.3.3 / MySQL 5.1.73 なのでだいぶ古いです。 CentOS 6 からなら CentOS 7 に更新するのが使い勝手(の変化が少ない)の点で好ましいのですが、CentOS 7 でも PHP 5.4.16 / MariaDB 5.5.60 なのでやっぱり警告対象です。CentOS 8 はもうすぐ出るはずとは言え待てない(そもそも RHEL 8 も出てない)ので、 Ubuntu の方に行くことにしました。 Ubuntu 18.04 LTS なら PHP 7.2 / MySQL 5.7.25 なのでだいぶ安心です。2年おきに出るし。

というわけで同じ Linux とはいえそれなりに異なる環境への移行となるわけですが、自鯖は blog と OSS の配布にしか使っていないので移行すべきデータはそんなに多くありません。いやホントはいろいろ遊ぶつもりで VPS を契約したはずなんですけどね。

というわけで移行時の手順

パッケージのインストール

少なくとも apache2 php mysql php-mysql パッケージが必要です。場合によっては php-mbstring パッケージも必要かもしれません。

あと、普通に使うために firewalld postfix bsd-mailx vim logwatch あたりをインストールしておきます。

MySQL のデータの移行

幸いというか、 WordPress の MySQL データベースは MyISAM で作ってあり、移行前後で CPU アーキテクチャが同じ (x86_64) なので、もっとも単純にはデータベースディレクトリ( /var/lib/mysql の下にあるディレクトリ)を丸ごとコピーするだけで大丈夫です。(ちゃんとするなら mysqldump を使うべきかもしれません)。MySQL 5.1 から 5.7 まで一気に飛ぶので、 mysql_upgrade を実行してデータベースを修正する必要があります(必要があるのはバージョンが飛んだせいかどうかは実はよく分かってない)。

MySQL のユーザの設定

基本的には 最初にこの blog をセットアップした時の記録を元にやったのですが、この記録ではユーザを明示的に作っていません(この通りにやると GRANT 文のところでユーザが無いと言われる)。この時は GRANT 文を実行した時に暗黙的にユーザが作られていたのか、それとも単にユーザを作る手順を記事に書き忘れたのかは判然としません。ともかくユーザを作ります。

Web のコンテンツの移行(Wordpress 自体を含む)

Web のコンテンツは WordPress 自体を含めて ~/public_html 以下に置いてあるので、単に rsync でバックアップしたものを書き戻すだけです。ファイルの owner/mode には注意しましょう(でないと WordPress 上でファイルのアップロードとかができなくなる)

Apache の設定

/etc/apache2/sites-available ディレクトリの下に umezawa.dyndns.info.conf という名前でバーチャルホストの設定をコピってきます。Apache のバージョンが 2.2 から 2.4 に変わる関係で、アクセス制御の書き方がかなり変わる(けど分かりやすくなる)のがちょっとめんどくさいところです。 書き終わったら a2ensite umezawa.dyndns.info として設定を有効化した後に Apache をリロードします。


事前に手元の VM で予行演習をしておいたのでわりとすんなり移行できました。

Trackback

no comment untill now

Add your comment now