PHP5.xをバージョン指定してCentOS7にインストールするコマンドです。 PHP7.xやPHP8.xも同様に可能です。 シェルスクリプトで自動化できるようにしたので、VMやDockerのイメージ作成にも使えます。
この記事にたどり着いた方の大半はレガシーな古いPHPのシステムを刷新しようと頑張る方だと思うので応援したい。 今更感もあるがちゃんと書く。
Contents
環境
$ sudo cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
このサーバにPHP5.xをインストールします。
ここではPHP-FPMを利用しないApacheの構成を想定してます。
php56をインストールするコマンド
例としてphp56といくつかのphpモジュールやPEARのパッケージをインストールする例を載せます。 一緒にhttpd24もインストールされます。
#!/bin/bash
yum update
## remi
yum install -y epel-release
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# デフォルトだと5.4をインストールしてしまう
# php5.6リポジトリの有効化
yum install -y yum-utils
yum-config-manager --enable remi-php56
# php5.6のインストール
yum -y install php
yum -y install php-mbstring \
php-xml \
php-pear
# 設定ファイルのバックアップ
cp /etc/php.ini /etc/php.ini.org
# /etc/php.ini.d/ にPHPモジュールの設定ファイルがある
# pear packages
pear install Mail
pear install Mail_Mime
バージョンの指定について
yum-config-manager --enable remi-php56
のバージョンをremi-php54
やremi-php73
などにしてあげるとPHPのバージョンを指定できる。
デフォルトではphp5.4がインストールされてしまいます。
yum -y --enablerepo=remi,remi-php56 php
でphp56をphpとしてインストールする方法もありますが、なぜかphp5.4がインストールされてしまう問題が起きたためyum-utils
をインストールしてyum-config-manager
コマンドでremi-php56
を有効にしてからインストールする方法に落ち着きました。
yum-config-manager --enable remi-php56
を実行すると/etc/yum.repos.d/remi.repo
の設定ファイルを書き換えてremi-php56を有効化します。
バージョン確認。
# php -v
PHP 5.6.40 (cli) (built: Jun 28 2021 14:40:12)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
/etc/yum.repos.d/remi.repoについて
yum-config-manager --enable remi-php56
を実行すると/etc/yum.repos.d/remi.repo
の設定ファイルの[remi-php56]
のenabled=1
と書き換えてremi-php56を有効化します。
設定ファイルの中身はこんな感じです。
$ sudo cat /etc/yum.repos.d/remi.repo
# Repository: http://rpms.remirepo.net/
# Blog: http://blog.remirepo.net/
# Forum: http://forum.remirepo.net/
[remi]
name=Remi\'s RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/remi/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-php55]
name=Remi\'s PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php55/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/php55/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/php55/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-php56]
name=Remi\'s PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/php56/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=1 #これが1になった
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
remiリポジトリの設定はいくつかあるのでこれから有効にするPHPのバージョンを選べばよい。
$ sudo cat /etc/yum.repos.d/remi
remi-glpi91.repo remi-glpi94.repo remi-php70.repo remi-php73.repo remi.repo
remi-glpi92.repo remi-modular.repo remi-php71.repo remi-php74.repo remi-safe.repo
remi-glpi93.repo remi-php54.repo remi-php72.repo remi-php80.repo
リンク
この記事に関するリンクを挙げておきます。 疑問に思ったら一読をお勧めします。
よくわかんないよってなったらTwitterのDMしてくれたら何とかします。 PHPのレガシーシステムの刷新とか仕事につながったら嬉しいです。