CentOS 7にPHP 5.4をインストール（Remi's RPM repository）

# はじめに

Remi's RPM repositoryを利用してCentOS7にPHP5.4をインストール
親記事：[PHP, PHP-FPMの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/dfe3823554b7caba6f6a)
参考：[Remi's RPM repository](https://rpms.remirepo.net/wizard/)

## サポート

本手法で導入した場合、[PHP: Supported Versions] (https://www.php.net/supported-versions.php)/[PHP: Unsupported Branches](https://www.php.net/eol.php)より、2015-09-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。
(メンテナーの御慈悲でその後もアップデートされているが、いつまで続くかはわからない)

## note

- インストール後の更新は `yum --enablerepo=remi-php54 update`

## LOG

### インストール

```shell-session
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
... 略

# yum install -y --enablerepo=remi-php54 php which
... 略
==========================================================================

 WARNING : PHP 5.4 have reached its "End of Life" in September 2015.
 Even, if this package includes some of the important security fix,
 backported from 5.5 or 5.6,
 The UPGRADE to a maintained version is very strongly RECOMMENDED.

==========================================================================
... 略
```

### 各種確認

```shell-session
# which php
/usr/bin/php

# php -v
PHP 5.4.45 (cli) (built: Jan 11 2019 13:43:32)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

# php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

# yum info php
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: nrt.edge.kernel.org
 * extras: ftp.iij.ad.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
Installed Packages
Name        : php
Arch        : x86_64
Version     : 5.4.45
Release     : 17.el7.remi
Size        : 9.0 M
Repo        : installed
From repo   : remi-php54
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated web pages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module (often referred to as mod_php)
            : which adds support for the PHP language to Apache HTTP Server.
```

### パッケージ更新状況

```shell-session
# rpm -q -changelog php | head -n 20
* Fri Jan 11 2019 Remi Collet <remi@remirepo.net> - 5.4.45-17
- Fix #77242 heap out of bounds read in xmlrpc_decode
- Fix #77380 Global out of bounds read in xmlrpc base64 code

* Mon Dec 10 2018 Remi Collet <remi@remirepo.net> - 5.4.45-16
- Fix #77231 Segfault when using convert.quoted-printable-encode filter
- Fix #77020 null pointer dereference in imap_mail
  CVE-2018-19935
- Fix #77153 imap_open allows to run arbitrary shell commands via
  mailbox parameter
  CVE-2018-19158

* Fri Sep 14 2018 Remi Collet <remi@remirepo.net> - 5.4.45-15
- fix #76582: XSS due to the header Transfer-Encoding: chunked

* Thu Mar 01 2018 Remi Collet <remi@remirepo.net> - 5.4.45-14
- fix #73549: Use after free when stream is passed to imagepng
- fix #73868: Fix DOS vulnerability in gdImageCreateFromGd2Ctx()
  CVE-2016-10167
- fix #73869: Signed Integer Overflow gd_io.c
```