VPSの移転とドメイン変更をしてから約半月。
古いままになっている部分やこうしておけばよかったと思う部分がまだまだ残っているので、少しずつ改善を重ねている。
当初は最新のPHPとMariaDBを使うはずだったけれどもうっかり忘れていたので、新しくしたいと思う。
すでにWordPressが動いていてもそれほど問題はなかった。
でもできることならば検証環境を用意してあらかじめ手順を確認しておいたほうが良い。
また、すべての作業の前にWordPressとDBのバックアップをし忘れてはならない。
CentOSについて
CentOSまたはそのオリジナルであるRHELは商用などのミッションクリティカルな使用条件でも安全に使えることを前提にしているため、
すでにバグが出し切っているかもしれないちょっと古いバージョンのソフトウェアが使われることになっている。
そして基本的にソフトウェアのメジャーバージョンはCentOSのメジャーバージョンがアップしない限りアップグレードされないと思う。
だから普通にyumでPHPをインストールすると、5.4で、
MariaDBは5.5になる。
今現在PHPは7.1だ。5.4 → 5.5 → 5.6 → 7.0 → 7.1 とバージョンアップされて来ているので、だいぶ前で止まっている
MariaDBは今は10.2だ。
5.5 → 10.0 → 10.1 → 10.2 と進んできている。
安定はしているのかもしれないが、
WordPressの推奨環境はPHP7.0 MariaDB10.0 とCentOS7のものよりも先に進んでいるので上げたほうが良い。
推奨なのでWordPress本体はもっと古い時代のものも意識して作られているので問題はないが、もうほとんどPHP7の時代なのでそのうちプラグインとかで辛い目にある可能性もある。
だから推奨環境にしたほうが良いだろう。
古いパッケージは安定していると言っても、止まらずに長期稼働と言う意味ではいいかもしれないが、
常に更新されていく場合だとそれは不便だ。
だからバージョンアップを行う。
ちなみに、CentOSは古すぎて脆弱性が怖いと思った人も居るかもしれないが、
古くても脆弱性対応はちゃんとされている。
だからyumで公式からインストールしているかぎり安全ではある。
PHPを最新にする
CentOSには拡張リポジトリがある。
epelはRHEL系の最新技術テスト用ディストロであるFedoraで使われているパッケージ群を使えるようにするため、
remiは最新のPHP関連のものを使えるようにするための外部リポジトリになっている。
今回はPHPはremiから入れる。
sudo yum install epel-release sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
これでremiのリポジトリをインストールする。
ついでにepelもつけてみた。
今回PHP関連で使っているのはPHPそのものと、PHP-FPMだけだとする。
その2つをインストールする。
まずはWordPressのサービスを落とすので、nginx php-fpmをストップする。
php-fpmは/etc/php-fpm.d/www.conf という設定ファイルがあるので
独自に設定した覚えがある場合はバックアップしておく。
そしてPHP関連の削除と、再インストールを行う
sudo yum remove php php-fpm sudo yum install --enablerepo=remi-php71 php php-fpm
enavlerepoでremi-php71を指定することにより、同じパッケージ名でもどこから取ってくるかを指定することがでできる。
MariaDBのバージョンアップ
phpなどは基本的にデータを持たないので、上げるか上げないかだけの問題だけれども
DBはデータを保持しているので消して入れるというのはかなりリスクが大きい。
そして、MariaDBは公式プロジェクトがリポジトリを管理してくれているらしい。
そのリポジトリへつなぐ設定をyumにすれば、yumはそっちからパッケージを取ってくるようになる
その設定ファイルを作成する方法がのっているのが、公式のこちらのサイト
https://downloads.mariadb.org/mariadb/repositories/#mirror=yamagata-university
下の画像はそのページの画像だけれども、ディストロとディストロのバージョンと、ほしいMariaDBのバージョンをクリックしていくと、
下に設定ファイル用テキストが表示される
これを/etc/yum.repos.d/ の下に適当なrepoファイルを作って、これを書き込むだけでOK
自分は/etc/yum.repos.d/maria.repo というファイルにした。
更新をする前に、MariaDBのサービスを落とさなければならない。
検証機でやったときに落とさずに先に進んでしまったら、起動できなくなったので必ずサービスを落とそう。
バージョンアップはPHPとは違って、アンインストールしないでアップデートをする。
sudo yum update
すると、MariaDBの向き先が変わったため5.5と10.2の置き換えが始まる。
そのままバージョンアップが完了する。
あとは、MariaDB、php-fpm、nginxのサービスを起動して、ブログ復旧になる。
作業時間は数分で終わる。
ダウンしている時間も少ないので、沢山ファンが居るブログでもそんなに問題はないと思う。