208

[GCP][MarketPlace]VMインスタンス上のWordPressで警告。PHP5.x→7.xにアップデートする方法

どうも、白戸です。せっかくの休日をPHPアップデートに費やし、いささか不機嫌な私です。

GCP MarketPlace でWordpress環境を5分で立ち上げた私のような方、「GCP超便利じゃーん!グーグル先生最高っス!さすが、話が早い!」とのほほんとしていたかと思います。

しかーし。最近、ダッシュボードにこんな警告が。

PHP の更新が必要です

マジかよっ!!

しかもダッシュボードからはこれ以上何もできない。つまり、SSH接続して真っ黒の画面見ながらコマンド打ち込んでシコシコやらなきゃいけないパターン。

と。めんどくせぇ…ひどくめんどくせぇ…( ´Д`)y━・~~

そう思いつつ見なかったことにして来た私ですが、重い腰をあげてアップデートしました!前述したとおり、一日を棒に振ったのでみなさんも同じ轍(てつ)を踏まないよう、備忘録を残すことにしました。

やること

  1. バックアップ
  2. プラグインの対応チェック
  3. WordPressが乗ってるVMインスタンスにSSH接続
  4. OSの種類とバージョンを確認
  5. PHP7.xをインストール

1. バックアップ

これに関しては下記の記事で紹介しています。1分で終わる。

[GCP]WordPressが乗ってるCompute Engineインスタンスのバックアップをサクッと取る方法

2. プラグインの対応チェック

これは記事が他にもたくさん出ているので割愛しますが、PHPのバージョンを上げてもいま入れているプラグインが動作するか、事前にチェックするためのプラグインが出ています。

PHP Compatibility Checker

有効化して動かしてみると、こんな感じでOKかどうかが一目瞭然に。(Amazon Associates Link Builderだけ対応してないwww)

3. WordPressが乗ってるVMインスタンスにSSH接続

GCPコンソールにログインして、

Compute Engine > VM インスタンス

でWordPressが入ってるインスタンスを選択

以下の画面でSSHの▼から「ブラウザ ウインドウ で開く」を選択

3. OSの種類とバージョンを確認

「めんどくさいから、とりあえず、PHPの最新バージョン入れとけばいいや」

って私のように横着すると後悔することになるので、先に

  • このサーバーのOSは何で、バージョンはいくつなのか?
  • サーバーのOSに対応しているPHPのバージョンはいくつなのか?

を確認することをお勧めします。

おそらく、GCPのMerketPlaceでWordPress入りのインスタンスならOSはDebianかUbuntuだと思います。

ここで豆知識をひとつ。

  • DebianはCUI(character user interface。黒画面、コマンド=文字=characterで操作する)
  • UbuntuはGUI(マウスとかクリックとかで操作できる)
  • UbuntuはDebianをベースとして派生したディストリビューション(流通・分布を意味する言葉で、Linuxの配布形態のこと)

はい、どうでもいいですね。すみません。

RedHat系

$ cat /etc/redhat-release

Fedora系

$ cat /etc/fedora-release

Debian系

$ cat /etc/debian_version

Ubuntu系

$cat /etc/lsb-release

Turbolinux系

$ cat /etc/turbolinux-release

SuSE Linux系

$ cat /etc/SuSE-release

私の場合は「Debian」で、バージョンは「8.11(Jessie)」でした。

Debian8はPHP7.2までしか対応してないようなので、7.3を入れようとするとエラーになります。(なりましたw 後述します)

私はここでかなりの時間を無駄にしたので、皆さん、どうか先に

どのバージョンのPHPを入れるべきか

は確認しておきましょう。

4. PHP7.xをインストール

さて、いよいよPHP7をインストールしていきます。参考にしたのはこちら

以下のコマンドを実行して、現在のパッケージを最新バージョンにアップグレードします。

$ sudo apt update
$ sudo apt upgrade

Debian 8でPHP PPAを有効にする

次のコマンドを実行して、最初に必要なパッケージをシステムにインストールします。 次に、パッケージ署名キーをインポートします。 その後、システム上のPHPパッケージ用にPPAを構成します。

$ sudo apt install ca-certificates apt-transport-https
$ wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add –
$ sudo echo “deb https://packages.sury.org/php/ jessie main” | tee /etc/apt/sources.list.d/php.list

PHP 7.1のインストール

Debian 8 JessieにPHP 7.1をインストールするために次のコマンドを使用できます。

$ sudo apt install php7.1

※ちなみに、私の場合は7.2、7.3だと失敗したので、7.1でやりました。

以上!

ダッシュボードの警告が消えない件

本来はここで終わりのはずなんですが、インスタンス再起動後にダッシュボードを見ても警告が消えとらん!!!

でもサーバーでPHPのバージョン確認すると

こんな感じ。PHP 7.1.32 なんですよ。ちゃんとアップデートされてるでしょ?

なんでまだ警告でとるん?って調べたところ、wp-includes内のversion.phpというファイルが以下のようになっとりまして。

PHPのバージョン、、、

5.6.20のままですやん!

と。なんでやねん!

ちなみに、ここを無理やり「7.1.32」に変えてサイトにアクセスしたらこんな画面になりました。

サーバーの PHP バージョンは 5.6.40+0+deb8u5 ですが WordPress 5.2.3 は 7.1.32 以上のみでご利用になれます。

あかんやん! 私が5年間書きためた記事どこ行ったん!? 

慌てて元に戻したらとりあえずブログは見られるようになりました。

ここでまた豆知識。

  • WordPressに書いた記事は、DBに保存されてるから.phpファイルとして存在しているわけじゃない。なので、phpファイルの操作で記事が消えることはない
  • アップロードした画像ファイルはwp-contents内にあるので、これは消したらヤバイ。
  • ちなみに、wp-config.phpというファイルにDBへの接続情報が書いてある。

はい。すみません。またどうでもいいですね。

WordPressを最新バージョンに入れ替える方法

こちらの記事を参考にさせていただきました。結論から言うと、警告が消えないのは変わらなかったけど、なんかいろいろと気が済みました。

SSH接続してコンソール立ち上げるまではさっきと同じ。

1. 最新のWordPressパッケージをダウンロード

$ mkdir ~/tmp
$ cd ~/tmp
$ wget https://downloads.wordpress.org/release/ja/wordpress-5.2.3.zip
$ unzip wordpress-5.2.3.zip

2. WordPressのダッシュボードで、全てのプラグインを停止

動いてたらロックされちゃう可能性があるからね。

3. 今動いている古いwp-includeswp-adminを削除

削除は怖い、と言う方はぜひバックアップをもう一度ちゃんと確認しましょう。ディレクトリごとzipにして、コピーを別のとこに保管しておくといいと思います。

$ sudo rm -R [wordpressがあるディレクトリのパス]/wp-includes
$ sudo rm -R [wordpressがあるディレクトリのパス]/wp-admin

[wordpressがあるディレクトリのパス]というのは、MarketPlaceでワンクリックでWordpressをインストールした人は、下記になります。

/var/www/html

4. 新しいwordpressのファイルで古いwordpressのファイルを上書き

$ cd ~/tmp/wordpress
$ sudo rsync -a ./ [wordpressがあるディレクトリのパス]

以上。でもまぁ、これやってもかわらんかったですね。 version.php内の記載が変わってなかったので当然ちゃ当然か。

現状、海外サイトも含めググってみたんですが、それらしい解決方法が見つけられず。

とりあえず、サーバーのPHPバージョンは7.1にアップデートできているので、これを信じてダッシュボードに出続けている警告は無視することにしました。

これ、アレでしょ。もう工事終わってるのに「工事中です。ご迷惑をおかけします」って看板だけ撤去され忘れてる、みたいなもんでしょ? 無視無視!

(誰か、なにかわかる人がいらっしゃったらご連絡お待ちしております)

それでは!

すえきあおい
  • すえきあおい
  • 2019年現在、32歳。元女社長で、今はフリーランスのブロガー兼SE。
    アプリ作成・システム構築みたいにモノ作りもやるし、ITコンサルみたいなアドバイザーもやってます。ブログもこの通り、時々更新してます。
    <経歴>
    早稲田理工の新卒で某ITコンサル会社に入社。でも6年で鬱になって退職。
    個人事業主として起業し、2015年(28歳)でフリーランス生活が始まる。
    ITから離れたくて小説家を目指すも1年で挫折したり、株式会社を立ち上げてビジネス始めようとしたけど軌道にのらないから休眠させたりと、支離滅裂な人生をエンジョイしてます。
    最近ようやく安定して高収益な仕事もらえるようになってきた。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です