GNU/Linux >> Linux の 問題 >  >> Cent OS

Remi RPM Repo を使用して CentOS 7 / RHEL 7 に PHP 7.1 をインストール / アップグレードする

数日前、私は nixcp.com サーバーで PHP 7.1 にアップグレードしなければなりませんでした。私は PHP 5.6.x を実行していたので、これは大きなアップグレードでした。

これは、PHP 7.1 が PHP 7.0 よりも 20% 高速であることを読んだ後 (PHP 7.0 が PHP 5.6.x の約 2 倍高速であることは誰もが知っています)、Web の速度と Web に夢中になっているため、ToDo リストの一番上にありました。これは、PHP 7.1 とその利点をテストするチャンスでした。

PHP 7.1 を CentOS 7 に段階的にインストールする

すべての PHP アプリに互換性があるかどうかを調べた後、CentOS 7.x 64 ビット上で PHP 5.6.x から PHP 7.1 へのアップグレード プロセスを開始しました。これは私のサーバーで使用した手順です。

念のため、現在のすべての PHP パッケージのリストを取得します:

rpm -qa | grep php

これは次のようになります:

[[email protected]:~]rpm -qa | grep php
php-common-5.6.30-1.el7.remi.x86_64
php-pear-1.10.3-1.el7.remi.noarch
php-pecl-memcache-3.0.8-4.el7.remi.5.6.x86_64
php-devel-5.6.30-1.el7.remi.x86_64
php-mysqlnd-5.6.30-1.el7.remi.x86_64
php-mcrypt-5.6.30-1.el7.remi.x86_64
php56-php-common-5.6.30-1.el7.remi.x86_64
php-cli-5.6.30-1.el7.remi.x86_64
php-pecl-jsonc-devel-1.3.10-2.el7.remi.5.6.x86_64
php-pecl-igbinary-2.0.1-1.el7.remi.5.6.x86_64
php-gd-5.6.30-1.el7.remi.x86_64
php-mbstring-5.6.30-1.el7.remi.x86_64
php56-runtime-2.1-5.el7.remi.x86_64
php56-php-pecl-msgpack-0.5.7-1.el7.remi.x86_64
php-5.6.30-1.el7.remi.x86_64
php-pecl-jsonc-1.3.10-2.el7.remi.5.6.x86_64
php-xml-5.6.30-1.el7.remi.x86_64
php-process-5.6.30-1.el7.remi.x86_64
php-xcache-3.2.0-1.el7.remi.5.6.x86_64
php-pecl-memcached-2.2.0-3.el7.remi.5.6.x86_64
php-soap-5.6.30-1.el7.remi.x86_64
php-opcache-5.6.30-1.el7.remi.x86_64
php56-php-pecl-jsonc-1.3.10-1.el7.remi.x86_64
php56-php-pecl-igbinary-2.0.1-1.el7.remi.x86_64
php-pdo-5.6.30-1.el7.remi.x86_64
php-fpm-5.6.30-1.el7.remi.x86_64
php56-php-pecl-zip-1.13.5-1.el7.remi.x86_64
php-pecl-zip-1.13.5-1.el7.remi.5.6.x86_64
php-pecl-msgpack-0.5.7-1.el7.remi.5.6.x86_64
php-xmlrpc-5.6.30-1.el7.remi.x86_64
[[email protected]:~]

CentOS 7.x 用の Remi Repo をインストールします

Remi のリポジトリは既にインストールされていますが、インストールされていない場合は、次のコマンドを使用してインストールできます:

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

その後、Remi リポジトリから PHP-71 パッケージを有効にし、次のコマンドを実行します:

yum-config-manager --enable remi-php71

期待される出力:

[[email protected]:~]yum-config-manager --enable remi-php71
Loaded plugins: fastestmirror, langpacks
==== repo: remi-php71 =======
[remi-php71]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/7/remi-php71
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = True
enablegroups = True
...
...
...

次に、yum update を実行します:

yum update -y

アップグレードではなく、CentOS 7 に PHP 7.1 をインストールするだけの場合は、次のコマンドを実行してください:

yum install php php-devel php-gd php-mbstring php-mcrypt php-soap php-mysqlnd

以下に示すように、現在のすべての PHP パッケージを PHP 7.1 に更新する必要があります。

この問題が発生した場合:

You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
php-5.6.30-1.el7.remi.x86_64 has missing requires of httpd-mmn = ('0', '20120211x8664', None)

httpd パッケージをインストールすることで修正できます。これは使用していませんが、必須です:

yum install httpd -y

その後、起動プロセスから httpd を無効にして、Nginx と一緒に起動しようとしてポート 80 の競合が発生しないようにします。

systemctl disable httpd

PHP 7.1.x では使用できないため、Xcache を削除します。

yum remove php-xcache* -y

Xcache を保持すると、以下に示すように yum エラーが発生する可能性があります:

--> Finished Dependency Resolution
Error: Package: 1:php-xcache-3.2.0-1.el7.remi.5.6.x86_64 (@remi-php56)
Requires: php(zend-abi) = 20131226-64
Removing: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56)
php(zend-abi) = 20131226-64
Updated By: php-common-7.1.3-1.el7.remi.x86_64 (remi-php71)
php(zend-abi) = 20160303-64
Available: php-common-5.4.16-42.el7.x86_64 (base)
php(zend-abi) = 20100525-64
Available: php-common-5.6.29-1.el7.remi.x86_64 (remi-php56)
php(zend-abi) = 20131226-64
Available: php-common-7.1.2-1.el7.remi.x86_64 (remi-php71)
php(zend-abi) = 20160303-64
Error: Package: 1:php-xcache-3.2.0-1.el7.remi.5.6.x86_64 (@remi-php56)
Requires: php(api) = 20131106-64
Removing: php-common-5.6.30-1.el7.remi.x86_64 (@remi-php56)
php(api) = 20131106-64
Updated By: php-common-7.1.3-1.el7.remi.x86_64 (remi-php71)
php(api) = 20160303-64
Available: php-common-5.4.16-42.el7.x86_64 (base)
php(api) = 20100412-64
Available: php-common-5.6.29-1.el7.remi.x86_64 (remi-php56)
php(api) = 20131106-64
Available: php-common-7.1.2-1.el7.remi.x86_64 (remi-php71)
php(api) = 20160303-64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

私が気づいたことの 1 つ:いくつかのパッケージがまだ PHP 5.6 バージョンのものです:

[[email protected]:~]rpm -qa | grep php56
php56-php-common-5.6.30-1.el7.remi.x86_64
php56-runtime-2.1-5.el7.remi.x86_64
php56-php-pecl-msgpack-0.5.7-1.el7.remi.x86_64
php56-php-pecl-jsonc-1.3.10-1.el7.remi.x86_64
php56-php-pecl-igbinary-2.0.1-1.el7.remi.x86_64
php56-php-pecl-zip-1.13.5-1.el7.remi.x86_64

それらを削除し、Remi から 7.1 バージョンをインストールします:

yum remove php56*
yum install yum install php71-php-common php71-runtime php71-php-pecl-msgpack php71-php-pecl-jsonc php71-php-pecl-igbinary php71-php-pecl-zip

PHP 5.6 から PHP 7.1 へのアップグレードが完了しました。

最後に、http と php-fpm を再起動して変更を適用してください:

systemctl restart nginx
systemctl restart php-fpm

以上で、CentOS 7 で PHP 7.1 をアップグレードまたはインストールする方法がわかりました。このチュートリアルに従って質問や問題がある場合はお知らせください。

Remi RPM Repo を使用して CentOS 7 / RHEL 7 に PHP 7.1 をインストール / アップグレードする
Cent OS
  1. CentOS7LinuxサーバーにPHP7をインストールまたはアップグレードする方法

  2. CentOS / RHEL6.10にPHP7.3、7.2、7.1をインストールする方法

  3. [Linux]:CentOS / Fedora/RHELでyumを使用してphpを5.1.6から5.3.3に強制的にアップグレードする方法

  1. CentOS6VPSにPHPMcryptをインストールします

  2. CentOS 7 /RHEL7およびCentOS6/RHEL6にPHP7.4/ 7.3/7.2をインストールする方法

  3. CentOS / RHEL/Fedoraでyumを使用してPHP5.3をPHP7.0にアップグレードします

  1. RHEL 8 / CentOS8LinuxにXdebugをインストールする方法

  2. CentOS 8 /RHEL8にPHP7.4/7.3をインストールする方法

  3. CentOS8にPHP7.4をインストールします