Edited at

[CentOS7]PHPとMySQLをアップデートする


はじめに

前回の記事ではWebminを設置した。

CentOSはセットアップの際にアップデートしていたが、PHPとMySQLは最新のものにアップデートしていなかった。

せっかくなので、最初から最新のものを入れておきたい。

環境は以下の通り


  • さくらVPS

  • スタートアップスクリプト「CentOS_LAMP」を使用

  • CentOS 7.6.1810

  • Apache 2.4.6

アップデートするのは以下の二つ


  • PHP 5.4.16 -> PHP 7.3.0

  • MariaDB 5.5.60 -> MariaDB 10.3


PHPのアップデート

最新のバージョンを確認

http://php.net/downloads.php

最新はPHP7.3.0

現在インストール済みのPHPをチェックする

# rpm -qa | grep php

php-mysql-5.4.16-46.el7.x86_64
php-process-5.4.16-46.el7.x86_64
php-xml-5.4.16-46.el7.x86_64
php-gd-5.4.16-46.el7.x86_64
php-cli-5.4.16-46.el7.x86_64
php-mbstring-5.4.16-46.el7.x86_64
php-common-5.4.16-46.el7.x86_64
php-devel-5.4.16-46.el7.x86_64
php-pdo-5.4.16-46.el7.x86_64
php-pear-1.9.4-21.el7.noarch

後で同じ拡張モジュールを入れようと思うので、とりあえずインストール済みのものをメモしておく。


古いPHPの削除

削除しなくてもいいらしいけど、他のサイトを見るとみんな削除してるっぽいので、PHP5関連のものは全部削除する。

# yum remove php-*

:
省略
:
Complete!

削除されたかどうかの確認

# php -v

bash: php: command not found


PHP7のインストール

Remiリポジトリを使ってインストールする

Remiの公式サイトにダウンロードのリンクがある。

remi.JPG

リンクを確認して、

以下のコマンドでインストール

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

そもそもRemiがよくわからなかったんですが、僕はこのサイトで何となく理解できました。

参考:Linuxのパッケージ管理についての用語を理解する

ちゃんとインストールされたかどうか確認する。

# ls -l /etc/yum.repos.d

total 80
:
省略
:
-rw-r--r--. 1 root root 951 Oct 3 2017 epel.repo
-rw-r--r-- 1 root root 446 Jun 19 17:28 remi-glpi91.repo
-rw-r--r-- 1 root root 446 Jun 19 17:28 remi-glpi92.repo
-rw-r--r-- 1 root root 446 Jun 19 17:28 remi-glpi93.repo
-rw-r--r-- 1 root root 456 Jun 19 17:28 remi-php54.repo
-rw-r--r-- 1 root root 1314 Jun 19 17:28 remi-php70.repo
-rw-r--r-- 1 root root 1314 Jun 19 17:28 remi-php71.repo
-rw-r--r-- 1 root root 1314 Jun 19 17:28 remi-php72.repo
-rw-r--r-- 1 root root 1314 Jun 19 17:28 remi-php73.repo
-rw-r--r-- 1 root root 750 Jun 19 17:28 remi-safe.repo
-rw-r--r-- 1 root root 2605 Jun 19 17:28 remi.repo

remi-*が追加されていることを確認。

いよいよPHP7のインストール

使用するのは最新のremi-php73

以下のコマンドでインストールする。

yum install --enablerepo=remi,remi-php73 php以降の部分には、先ほどメモした元々入っていた拡張モジュールを全部追加。

# yum install --enablerepo=remi,remi-php73 php php-mysql php-process php-xml php-gd php-cli php-mbstring php-common php-devel php-pdo php-pear

:
省略
:
Complete!

インストールされたかを確認する。

# php -v

PHP 7.3.0 (cli) (built: Dec 4 2018 16:12:20) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies

# rpm -qa | grep php
php-cli-7.3.0-1.el7.remi.x86_64
php-pear-1.10.7-1.el7.remi.noarch
php-common-7.3.0-1.el7.remi.x86_64
php-fedora-autoloader-1.0.0-1.el7.remi.noarch
php-devel-7.3.0-1.el7.remi.x86_64
php-json-7.3.0-1.el7.remi.x86_64
php-pdo-7.3.0-1.el7.remi.x86_64
php-gd-7.3.0-1.el7.remi.x86_64
php-7.3.0-1.el7.remi.x86_64
php-xml-7.3.0-1.el7.remi.x86_64
php-mbstring-7.3.0-1.el7.remi.x86_64
php-process-7.3.0-1.el7.remi.x86_64
php-mysqlnd-7.3.0-1.el7.remi.x86_64

無事、PHP7.3.0になりました。


MariaDBのアップデート

続いてMariaDBのアップデートをします。

MariaDB 5.5.60MariaDB 10.3にアップデート

まずは現在のバージョンを確認する

# mysql --version

mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1


yumリポジトリの作成

追記:コメントでもっと簡単な方法を教えていただきました。こっちをぜひ試してみてください。

MariaDBのリポジトリを新規に作成します。

MariaDBの公式にリポジトリのジェネレーターがある。

リポジトリジェネレーター:https://downloads.mariadb.org/mariadb/repositories/

CentOS > CentOS7(x86_64) > 10.3[Stable]の順に選択していくとリポジトリの中身が生成される。

mariadb.JPG

これをコピペして使う

設置する場所は/etc/yum.repos.d/

/etc/yum.repos.d/に移動して、MariaDB.repoというファイルを新規作成

# cd /etc/yum.repos.d/

# vi MariaDB.repo

さっきのリポジトリジェネレーターの内容をコピペする。


/etc/yum.repos.d/MariaDB.repo

# MariaDB 10.3 CentOS repository list - created 2018-12-24 01:31 UTC

# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


追記 2018/12/28

コメントでもっと簡単な方法を教えていただきました。

以下のコマンドだけでyumリポジトリの設定ができてしまうそうです。

詳細はこちら

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

私はこの方法を試していませんが、とても簡単そうなのでぜひ試してみてください。


アップデート

今回は、MariaDB 5.5MariaDB 10.3にアップデートする作業なので、

一旦MariaDBを停止してアップデートコマンドをたたく。

まずは停止してから、止まっていることを確認。

# systemctl stop mariadb

# systemctl status mariadb
:
省略
:
Active: inactive (dead) since
:
省略
:

Active: inactive (dead)になっていることを確認。

確認できたら以下のコマンドでアップデートする。

# yum update MariaDB-server MariaDB-client

:
省略
:
Complete!


バージョン確認

バージョンを確認する

# mysql --version

mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1

無事にバージョンアップができました。


まとめ

結局この作業をするのなら、さくらVPSのスタートアップスクリプト「CentOS_LAMP」でインストールする必要はないのかなぁ…なんてことが脳裏をよぎってしまった。

次回はComposerを入れてPHPフレームワークのCodeigniterを導入する予定です。