CentOS 6にPHP7.3をインストールする方法
CentOS 6にPHP7.3をインストールする方法を紹介します。
1.問題点
CentOS 6にyumでPHPをインストールすると、7.3のremiリポジトリを指定しても、5.3.3という古いバージョンがインストールされてしまいます(下記)。
# yum install --skip-broken --enablerepo=remi-php73 php php-cli php-common php-devel php-gd php-mbstring php-mcrypt php-mysqlnd php-pdo php-pear php-pecl-jsonc php-pecl-jsonc-devel php-process php-xml
Loaded plugins: fastestmirror, priorities, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* epel: ftp.iij.ad.jp
* remi-php73: ftp.riken.jp
* remi-safe: ftp.riken.jp
245 packages excluded due to repository priority protections
Package php-mcrypt is obsoleted by php-pecl-mcrypt, trying to install php-pecl-mcrypt-1.0.3-1.el6.remi.7.3.x86_64 instead
No package php-pecl-jsonc available.
No package php-pecl-jsonc-devel available.
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.3.3-50.el6_10 will be installed
---> Package php-cli.x86_64 0:5.3.3-50.el6_10 will be installed
---> Package php-common.x86_64 0:5.3.3-50.el6_10 will be installed
:
---> Package php-process.x86_64 0:5.3.3-50.el6_10 will be installed
---> Package php-xml.x86_64 0:5.3.3-50.el6_10 will be installed
--> Finished Dependency Resolution
Packages skipped because of dependency problems:
php-mysqlnd-7.3.25-1.el6.remi.x86_64 from remi-php73
php-pecl-mcrypt-1.0.3-1.el6.remi.7.3.x86_64 from remi-php73
Dependencies Resolved
===============================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================
Installing:
php x86_64 5.3.3-50.el6_10 updates 1.1 M
php-cli x86_64 5.3.3-50.el6_10 updates 2.2 M
php-common x86_64 5.3.3-50.el6_10 updates 530 k
php-devel x86_64 5.3.3-50.el6_10 updates 513 k
php-gd x86_64 5.3.3-50.el6_10 updates 112 k
php-mbstring x86_64 5.3.3-50.el6_10 updates 460 k
php-pdo x86_64 5.3.3-50.el6_10 updates 80 k
php-pear noarch 1:1.9.4-5.el6 base 393 k
php-process x86_64 5.3.3-50.el6_10 updates 44 k
php-xml x86_64 5.3.3-50.el6_10 updates 108 k
Skipped (dependency problems):
php-mysqlnd x86_64 7.3.25-1.el6.remi remi-php73 216 k
php-pecl-mcrypt x86_64 1.0.3-1.el6.remi.7.3 remi-php73 27 k
Transaction Summary
===============================================================================================================================================================================
Install 10 Package(s)
(後略)
ということで、CentOS 6にPHP7.3をインストールする方法を紹介します。
以下のサンプルはrootユーザーで実行しています。そうでない場合、suでroot権限実行するよう、適宜変更してください。
なお、CentOS 6はサポートが2020年11月30日に終了しているので、後述のyum installで下記のエラーが発生する場合、
Loaded plugins: fastestmirror, priorities, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
リポジトリリスト (/etc/yum.repos.d/CentOS-Base.repo) のURLを、パッケージが公開されているvault.centos.orgへ変更してください。
# sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\/mirrorlist.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo
# sed -i -e "s/^#baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo
2.CentOS 6にPHP7.3をインストールする
CentOSを最新化します(少し時間がかかります)。
# yum update
完了後、サーバを再起動。
# shutdown -r now
現在のPHPパッケージをアンインストールします。
PHPのパッケージをアンインストールするのは「yum remove php*」「yum remove php-*」です。
# yum remove php*
:
Removed:
php.x86_64 0:5.3.3-50.el6_10 php-cli.x86_64 0:5.3.3-50.el6_10 php-common.x86_64 0:5.3.3-50.el6_10 php-devel.x86_64 0:5.3.3-50.el6_10
php-gd.x86_64 0:5.3.3-50.el6_10 php-mbstring.x86_64 0:5.3.3-50.el6_10 php-pdo.x86_64 0:5.3.3-50.el6_10 php-pear.noarch 1:1.9.4-5.el6
php-process.x86_64 0:5.3.3-50.el6_10 php-xml.x86_64 0:5.3.3-50.el6_10
Complete!
# yum remove php-*
:
Removed:
php-bcmath.x86_64 0:5.3.3-50.el6_10 php-common.x86_64 0:5.3.3-50.el6_10 php-fedora-autoloader.noarch 0:1.0.1-2.el6 php-gd.x86_64 0:5.3.3-50.el6_10
php-mbstring.x86_64 0:5.3.3-50.el6_10 php-mcrypt.x86_64 0:5.3.3-5.el6 php-mysql.x86_64 0:5.3.3-50.el6_10 php-pdo.x86_64 0:5.3.3-50.el6_10
php-php-gettext.noarch 0:1.0.12-1.el6 php-process.x86_64 0:5.3.3-50.el6_10 php-tcpdf.noarch 0:6.2.26-1.el6 php-tcpdf-dejavu-sans-fonts.noarch 0:6.2.26-1.el6
php-tidy.x86_64 0:5.3.3-50.el6_10 php-xml.x86_64 0:5.3.3-50.el6_10
Complete!
PHPのインストールの前に、CentOS 6用のremiリポジトリを取得するか確認します。
# ls -l /etc/yum.repos.d/
total 28
-rw-r--r-- 1 root root 1981 Jan 11 2013 CentOS-Base.repo
-rw-r--r--. 1 root root 637 Jun 26 2012 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 626 Jun 26 2012 CentOS-Media.repo
-rw-r--r--. 1 root root 2593 Jun 26 2012 CentOS-Vault.repo
-rw-r--r-- 1 root root 1056 Nov 5 2012 epel-testing.repo
-rw-r--r-- 1 root root 957 Nov 5 2012 epel.repo
-rw-r--r-- 1 root root 644 Jan 11 2013 remi.repo
remi-phpXX.repoがない場合、下記を実施。
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Preparing... ########################################### [100%]
1:remi-release ########################################### [100%]
これでCentOS 6用のremiリポジトリが追加されました。
# ls -l /etc/yum.repos.d/
total 72
-rw-r--r-- 1 root root 1981 Jan 11 2013 CentOS-Base.repo
-rw-r--r--. 1 root root 637 Jun 26 2012 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 626 Jun 26 2012 CentOS-Media.repo
-rw-r--r--. 1 root root 2593 Jun 26 2012 CentOS-Vault.repo
-rw-r--r-- 1 root root 1056 Nov 5 2012 epel-testing.repo
-rw-r--r-- 1 root root 957 Nov 5 2012 epel.repo
-rw-r--r-- 1 root root 446 Feb 18 2020 remi-glpi91.repo
-rw-r--r-- 1 root root 446 Feb 18 2020 remi-glpi92.repo
-rw-r--r-- 1 root root 446 Feb 18 2020 remi-glpi93.repo
-rw-r--r-- 1 root root 446 Feb 18 2020 remi-glpi94.repo
-rw-r--r-- 1 root root 456 Feb 18 2020 remi-php54.repo
-rw-r--r-- 1 root root 1314 Feb 18 2020 remi-php70.repo
-rw-r--r-- 1 root root 1314 Feb 18 2020 remi-php71.repo
-rw-r--r-- 1 root root 1314 Feb 18 2020 remi-php72.repo
-rw-r--r-- 1 root root 1314 Feb 18 2020 remi-php73.repo
-rw-r--r-- 1 root root 750 Feb 18 2020 remi-safe.repo
-rw-r--r-- 1 root root 644 Jan 11 2013 remi.repo
-rw-r--r-- 1 root root 2605 Feb 18 2020 remi.repo.rpmnew
"remi-php73.repo"があるので、PHPは7.3までいれられそうです。
次に、PHP7.3のphp-mbstringをインストールします。何回かに分割していますが、以降のパッケージをまとめてインストールできるかもしれません。
# yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php-mbstring
:
Installed:
php-mbstring.x86_64 0:7.3.25-1.el6.remi
Dependency Installed:
oniguruma5php.x86_64 0:6.9.6-1.el6.remi php-common.x86_64 0:7.3.25-1.el6.remi php-json.x86_64 0:7.3.25-1.el6.remi
Complete!
次に、php-mysqlnd、php-pdo、php-gdをインストールします。
# yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php-mysqlnd php-pdo php-gd
:
Installed:
php-gd.x86_64 0:7.3.25-1.el6.remi php-mysqlnd.x86_64 0:7.3.25-1.el6.remi php-pdo.x86_64 0:7.3.25-1.el6.remi
Dependency Installed:
gd-last.x86_64 0:2.3.0-2.el6.remi libwebp.x86_64 0:0.4.3-3.el6
Complete!
php-develをインストールします。
# yum install --enablerepo=epel,remi,remi-safe,remi-php73 php-devel
:
Installed:
php-devel.x86_64 0:7.3.25-1.el6.remi
Dependency Installed:
keyutils-libs-devel.x86_64 0:1.4-5.el6 krb5-devel.x86_64 0:1.10.3-65.el6 libargon2-devel.x86_64 0:20161029-7.el6.remi
libcom_err-devel.x86_64 0:1.41.12-24.el6 libedit-devel.x86_64 0:2.11-4.20080712cvs.1.el6 libkadm5.x86_64 0:1.10.3-65.el6
libselinux-devel.x86_64 0:2.0.94-7.el6 libsepol-devel.x86_64 0:2.0.41-4.el6 libxml2-devel.x86_64 0:2.7.6-21.el6_8.1
ncurses-devel.x86_64 0:5.7-4.20090207.el6 openssl-devel.x86_64 0:1.0.1e-58.el6_10 php-cli.x86_64 0:7.3.25-1.el6.remi
zlib-devel.x86_64 0:1.2.3-29.el6
Complete!
最後にphpをインストールします。
# yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php
:
Installed:
php.x86_64 0:7.3.25-1.el6.remi
Complete!
3.参考サイト
参考サイトは下記です。ありがとうございました。
【Web】さくらVPSのPHPを7.1→7.3にバージョンアップする
さくらVPSのPHPを5.5から7.3にアップデートしました
さくらVPSでPHPをアップデートする
CentOS 6 で "YumRepo Error: All mirror URLs are not using ftp, http[s] or file."
- VMをundefineできない場合の対処
- cpanflute2でエラーになる場合の対処
- シェルスクリプトをバイナリ化する「shc」
- OpenSSLで文字列を暗号化・複号化する方法
- sshログインに時間がかかる場合の対処
- vi/vimで範囲指定して置換する方法
- vi/vimでマークした行に移動する方法
- vi/vimで複数行を一括削除する方法
- LinuxでOSキャッシュをクリアする方法
- lessで検索文字列だけを表示する方法
- tailコマンドでファイルがローテートされても追従する方法
- svnでファイルやディレクトリを削除する方法
- phpMyAdminで「unknown system variable 'lc_messages'」となる場合の対処
- Linux(CentOS)でapxsがみつからない場合の対処
- PHP7.3とApacheを連携させる方法