ローカル開発環境のPHPが5.6だったので、バージョンを上げてみようと思いました。
CentOSにPHP7.2入れたい
→Remiというプロジェクトのリポジトリを使うとyumで入れられるらしい
→Remiを利用するためにはEPELリポジトリのインストールも必須要件
手順
root権限を持つユーザで作業します。
EPELリポジトリのインストール
# yum -y install epel-release
えーなんか出た……
[root@localhost ~]# yum -y install epel-release
Geladene Plugins: fastestmirror
Einrichten des Installationsprozess
Loading mirror speeds from cached hostfile
Could not get metalink https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=x86_64 error was
14: problem making ssl connection
* base: ftp-srv2.kddilabs.jp
* epel: ftp.riken.jp
* extras: ftp-srv2.kddilabs.jp
* remi-safe: ftp.riken.jp
* updates: ftp-srv2.kddilabs.jp
Paket epel-release-6-8.noarch ist bereits in der neusten Version installiert.
Nichts zu tun
yumの設定を書き換えて対処。
baseurl
のコメントアウトを外して、 mirrorlist
をコメントアウト。
参考: yumがepelのmirrorにつながんねーよと怒ってる時の対処法 – Qiita
# vim /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
↓
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
再実行
# yum -y install epel-release
[root@localhost ~]# yum -y install epel-release
Geladene Plugins: fastestmirror
Einrichten des Installationsprozess
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* remi-safe: ftp.riken.jp
* updates: ftp-srv2.kddilabs.jp
epel | 4.7 kB 00:00
epel/primary_db | 6.1 MB 00:02
Paket epel-release-6-8.noarch ist bereits in der neusten Version installiert.
Nichts zu tun
ヨシ!
Remiリポジトリのインストール
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@localhost ~]# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Geladene Plugins: fastestmirror
Einrichten des Installationsprozess
remi-release-7.rpm | 20 kB 00:00
Untersuche /var/tmp/yum-root-KfXqbk/remi-release-7.rpm: remi-release-7.7-2.el7.remi.noarch
Markiere /var/tmp/yum-root-KfXqbk/remi-release-7.rpm als eine Aktualisierung für remi-release-6.9-2.el6.remi.noarch
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* remi-safe: ftp.riken.jp
* updates: ftp-srv2.kddilabs.jp
Löse Abhängigkeiten auf
--> Führe Transaktionsprüfung aus
---> Package remi-release.noarch 0:6.9-2.el6.remi will be aktualisiert
---> Package remi-release.noarch 0:7.7-2.el7.remi will be an update
--> Verarbeite Abhängigkeiten: epel-release = 7 für Paket: remi-release-7.7-2.el7.remi.noarch
--> Abhängigkeitsauflösung beendet
Fehler: Package: remi-release-7.7-2.el7.remi.noarch (/remi-release-7)
Requires: epel-release = 7
Installiert: epel-release-6-8.noarch (installed)
epel-release = 6-8
Sie können versuchen --skip-broken zu benutzen, um das Problem zu umgehen.
You could try running: rpm -Va --nofiles --nodigest
ヨシ!
Remiのインストール状況を確認
# ls -l /etc/yum.repos.d/
[root@localhost ~]# ls -l /etc/yum.repos.d/
insgesamt 64
-rw-r--r--. 1 root root 1991 23. Okt 2014 CentOS-Base.repo
-rw-r--r--. 1 root root 647 23. Okt 2014 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 289 23. Okt 2014 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 23. Okt 2014 CentOS-Media.repo
-rw-r--r--. 1 root root 5394 23. Okt 2014 CentOS-Vault.repo
-rw-r--r-- 1 root root 957 22. Jun 18:47 epel.repo
-rw-r--r--. 1 root root 1056 5. Nov 2012 epel-testing.repo
-rw-r--r-- 1 root root 1209 2. Dez 2013 mysql-community.repo
-rw-r--r-- 1 root root 1060 2. Dez 2013 mysql-community-source.repo
-rw-r--r--. 1 root root 456 16. Jan 2018 remi-php54.repo
-rw-r--r--. 1 root root 1314 16. Jan 2018 remi-php70.repo
-rw-r--r--. 1 root root 1314 16. Jan 2018 remi-php71.repo
-rw-r--r--. 1 root root 1314 16. Jan 2018 remi-php72.repo
-rw-r--r--. 1 root root 2605 16. Jan 2018 remi.repo
-rw-r--r--. 1 root root 750 16. Jan 2018 remi-safe.repo
epel、remiともにインストールできていることがわかる。
特に、remi-php72.repoが取得できていることが確認できる。
ここまでが下準備。
古いPHPのアンインストール
インストール済のPHP関連のパッケージ一覧を表示
# yum info installed php*
ずらずらっと色々出てくる。
アンインストール
# yum remove php*
~~(php関連パッケージたち)~~
========================================================
Remove 93 Package(s)
Installed size: 95 M
Ist dies in Ordnung? [j/N] :j
~~(削除中)~~
Komplett!
[root@localhost ~]#
消えていることを確認
[root@localhost ~]# php -v
-bash: /usr/bin/php: Datei oder Verzeichnis nicht gefunden
新しいPHPのインストール
# yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php72 php
インストール完了後、バージョン確認。
[root@localhost ~]# php -v
PHP 7.2.31 (cli) (built: Jun 9 2020 08:25:54) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
<関係ないですが、ここで言語設定をドイツ語から英語に変更しました>
phpMyAdminのインストール
# yum install -y --enablerepo=remi-php72 phpMyAdmin
なんか言われた。
Error: Package: phpMyAdmin-4.0.10.20-1.el6.noarch (epel)
Requires: php(language) < 7
Installed: php-common-7.2.31-2.el6.remi.x86_64 (@remi-php72)
php(language) = 7.2.31
Available: php-common-5.3.3-49.el6.x86_64 (base)
php(language) = 5.3.3
Available: php-common-5.3.3-50.el6_10.x86_64 (updates)
php(language) = 5.3.3
Available: php-common-7.2.31-1.el6.remi.x86_64 (remi-php72)
php(language) = 7.2.31
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
phpMyAdminが入らないのはアカン。
対処します。
参考: centos – centOS6.8にphpMyAdminをyumでインストールしたさいのエラー – スタック・オーバーフロー
remiリポジトリのアップデート
# yum --disablerepo=* --enablerepo=remi,remi-php72 update
remiのみを指定して再インストール
# yum --disablerepo=* --enablerepo=remi,remi-php72 install phpMyAdmin
ずらずらっと処理が走って Complete!
したのでOK。
Apacheの再起動
# service httpd restart
phpMyAdminが無事開けたのでOK
と思いきや、いざlocalを開いてみたらまたエラー
やれやれ
Notice: Undefined variable: u_id in (ファイルのパス) on line 78
Notice: Undefined index: action in (ファイルのパス) on line 11
Warning: require_once(hogefuga.php): failed to open stream: No such file or directory in (ファイルのパス) on line 4
Fatal error: require_once(): Failed opening required 'hogefuga.php' (include_path='.:/usr/share/pear:/usr/share/php') in (ファイルのパス) on line 4
.htaccessを確認
<IfModule mod_php5.c>
php_value include_path "hogehogehogehogehohgeohgoehogehogheogehoge"
php_value error_reporting 6135
php_value mysql.connect_timeout 1
</IfModule>
あーーーーーーー!
対処
php_value include_path "hogehogehogehogehohgeohgoehogehogheogehoge"
php_value error_reporting 6135
php_value mysql.connect_timeout 1
一般的に、<IfModule>
使うのはよろしくないという言説も見かけるので削除。
再びのApache再起動
# service httpd restart
きちんとページが表示されたのでヨシ!
参考