ヘルプ:PHP 7.4 を Remi's RPM repository からインストール(CentOS8)

提供:あわ自由帳

メインページ > ヘルプ:目次 > ヘルプ:自宅サーバー構築(CentOS8)  > PHP 7.4 を Remi's RPM repository からインストール(CentOS8)

  • 自宅サーバーで、記事を書いた時点のバージョンで動作確認しています。導入される方は自己責任で行ってください。
  • メールサーバーでウイルスチェックが、動作しなくなります。メールサーバーの設定から外してください。
  • Imagick 使えます。
  • WordPress 5.5.1 動作しています。
  • MediaWiki 1.35.0 動作しています。
  • dnf用リポジトリ追加(CentOS8)を導入済みとします。
  • この方法をおすすめすべきでしょうが、OSをクリーンインストールして、何回試しても成功率が50%ぐらいです。
  • この方法で失敗する場合は、PHP 7.4 を Remi's RPM repository からインストール(CentOS8)(1)を、お試しください。

CentOSバージョン確認

[root@host4 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

インストール

有効になっている PHP のバージョンを確認

[root@host4 ~]# dnf module list php
CentOS-8 - AppStream
Name           Stream               Profiles                                Summary                        
php            7.2 [d][e]           common [d] [i], devel, minimal          PHP scripting language         
php            7.3                  common [d], devel, minimal              PHP scripting language         

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name           Stream               Profiles                                Summary                        
php            remi-7.2             common [d], devel, minimal              PHP scripting language         
php            remi-7.3             common [d], devel, minimal              PHP scripting language         
php            remi-7.4             common [d], devel, minimal              PHP scripting language         
php            remi-8.0             common [d], devel, minimal              PHP scripting language         

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Stream切り替え

[root@host4 ~]# dnf module reset php

[root@host4 ~]# dnf module enable php:remi-7.4
[root@host4 ~]# dnf module list php
CentOS-8 - AppStream
Name           Stream                 Profiles                             Summary                         
php            7.2 [d]                common [d], devel, minimal           PHP scripting language          
php            7.3                    common [d], devel, minimal           PHP scripting language          

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name           Stream                 Profiles                             Summary                         
php            remi-7.2               common [d], devel, minimal           PHP scripting language          
php            remi-7.3               common [d], devel, minimal           PHP scripting language          
php            remi-7.4 [e]           common [d], devel, minimal           PHP scripting language          
php            remi-8.0               common [d], devel, minimal           PHP scripting language          

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

旧 php アンインストール

php 7.2 からアップデートする場合は、アンインストールしてから行わないと失敗します。

[root@host4 ~]# dnf remove php php-* php*

[root@host4 ~]# php -v

[root@host4 ~]# rpm -qa | grep php

バージョン情報が出てこなければアンインストール完了です。

インストール実行

[root@host4 ~]# dnf module install php:remi-7.4
・
・
トランザクションの概要
==========================================================================================================================
インストール  8 パッケージ

ダウンロードサイズの合計: 8.4 M
インストール済みのサイズ: 41 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/8): nginx-filesystem-1.14.1-9.module_el8.0.0+184+e34fea82.noarch.rpm                   163 kB/s |  24 kB     00:00    
(2/8): php-common-7.4.11-1.el8.remi.x86_64.rpm                                            321 kB/s | 1.2 MB     00:03    
(3/8): oniguruma5php-6.9.5+rev1-3.el8.remi.x86_64.rpm                                      46 kB/s | 206 kB     00:04    
(4/8): php-json-7.4.11-1.el8.remi.x86_64.rpm                                               42 kB/s |  75 kB     00:01    
(5/8): php-cli-7.4.11-1.el8.remi.x86_64.rpm                                               599 kB/s | 4.6 MB     00:07    
(6/8): php-fpm-7.4.11-1.el8.remi.x86_64.rpm                                               301 kB/s | 1.6 MB     00:05    
(7/8): php-xml-7.4.11-1.el8.remi.x86_64.rpm                                               117 kB/s | 214 kB     00:01    
(8/8): php-mbstring-7.4.11-1.el8.remi.x86_64.rpm                                           98 kB/s | 527 kB     00:05    
--------------------------------------------------------------------------------------------------------------------------
合計                                                                                      644 kB/s | 8.4 MB     00:13 

追加パッケージをインストール

[root@host4 ~]# dnf install php-pear php-pecl-xdebug php-devel php-mysqlnd php-fpm php-mcrypt php-opcache php-pdo php-gd php-gmp
・
・
依存関係が解決しました。
==========================================================================================================================
 パッケージ                         アーキテクチャー    バージョン                        リポジトリー              サイズ
==========================================================================================================================
インストール中:
 php-devel                          x86_64              7.4.11-1.el8.remi                 remi-modular              1.1 M
 php-mysqlnd                        x86_64              7.4.11-1.el8.remi                 remi-modular              258 k
 php-opcache                        x86_64              7.4.11-1.el8.remi                 remi-modular              334 k
 php-pdo                            x86_64              7.4.11-1.el8.remi                 remi-modular              142 k
 php-pear                           noarch              1:1.10.12-2.el8.remi              remi-modular              365 k
 php-pecl-mcrypt                    x86_64              1.0.3-1.el8.remi.7.4              remi-modular               35 k
 php-pecl-xdebug                    x86_64              2.9.8-1.el8.remi.7.4              remi-modular              249 k
依存関係のインストール中:
 cmake-filesystem                   x86_64              3.11.4-7.el8                      AppStream                  40 k
 keyutils-libs-devel                x86_64              1.5.10-6.el8                      BaseOS                     48 k
 krb5-devel                         x86_64              1.17-18.el8                       BaseOS                    549 k
 libcom_err-devel                   x86_64              1.45.4-3.el8                      BaseOS                     38 k
 libkadm5                           x86_64              1.17-18.el8                       BaseOS                    185 k
 libmcrypt                          x86_64              2.5.8-26.el8                      epel                      109 k
 libselinux-devel                   x86_64              2.9-3.el8                         BaseOS                    199 k
 libsepol-devel                     x86_64              2.9-1.el8                         BaseOS                     86 k
 libverto-devel                     x86_64              0.3.0-5.el8                       BaseOS                     18 k
 libxml2-devel                      x86_64              2.9.7-7.el8                       AppStream                 1.0 M
 openssl-devel                      x86_64              1:1.1.1c-15.el8                   BaseOS                    2.3 M
 pcre2-devel                        x86_64              10.32-1.el8                       BaseOS                    605 k
 pcre2-utf16                        x86_64              10.32-1.el8                       BaseOS                    228 k
 pcre2-utf32                        x86_64              10.32-1.el8                       BaseOS                    220 k
 php-fedora-autoloader              noarch              1.0.1-2.el8.remi                  remi-modular               13 k
 php-process                        x86_64              7.4.11-1.el8.remi                 remi-modular               97 k
 xz-devel                           x86_64              5.2.4-3.el8                       BaseOS                     62 k

トランザクションの概要
==========================================================================================================================
インストール  24 パッケージ

インストール済みパッケージ確認

[root@host4 ~]# rpm -qa | grep php
php-opcache-7.4.11-1.el8.remi.x86_64
php-7.4.11-1.el8.remi.x86_64
php-pecl-xdebug-2.9.8-1.el8.remi.7.4.x86_64
php-common-7.4.11-1.el8.remi.x86_64
php-sodium-7.4.11-1.el8.remi.x86_64
php-process-7.4.11-1.el8.remi.x86_64
php-cli-7.4.11-1.el8.remi.x86_64
oniguruma5php-6.9.5+rev1-3.el8.remi.x86_64
php-mysqlnd-7.4.11-1.el8.remi.x86_64
php-fedora-autoloader-1.0.1-2.el8.remi.noarch
php-pecl-apcu-5.1.19-1.el8.remi.7.4.x86_64
php-pdo-7.4.11-1.el8.remi.x86_64
php-fpm-7.4.11-1.el8.remi.x86_64
php-mbstring-7.4.11-1.el8.remi.x86_64
php-pecl-mcrypt-1.0.3-1.el8.remi.7.4.x86_64
php-gd-7.4.11-1.el8.remi.x86_64
php-pear-1.10.12-2.el8.remi.noarch
php-json-7.4.11-1.el8.remi.x86_64
php-gmp-7.4.11-1.el8.remi.x86_64
php-xml-7.4.11-1.el8.remi.x86_64
php-devel-7.4.11-1.el8.remi.x86_64

php.iniの設定

[root@host4 ~]# vi /etc/php.ini

# [PHP]ブロック
expose_php = Off ← レスポンスヘッダにPHPのバージョンを表示させない
error_reporting = E_ALL ← 全てのログを出力させる
display_errors = Off ← ブラウザでのエラー表示させない
log_errors = On ← エラーをログに残す
log_errors_max_len = 4096 ← エラーログの長さを設定、念のため大きめに
error_log = "/var/log/php_errors.log" ← エラーログ出力先
default_charset = "UTF-8" ← 文字エンコーディング

#[Date]ブロック
date.timezone = "Asia/Tokyo" ← タイムゾーン

#[mbstring]ブロック
mbstring.language = Japanese ← デフォルト言語
mbstring.internal_encoding = UTF-8 ← 内部文字エンコーディング
mbstring.http_input = auto ← HTTP入力文字エンコーディングのデフォルト
mbstring.detect_order = auto ← 文字エンコーディング検出順序のデフォルト

; サーバーの搭載メモリーなど環境に応じて変えてください
memory_limit = 128M
post_max_size = 32M
upload_max_filesize = 32M

php-fpmの起動

[root@host4 ~]# systemctl start php-fpm

[root@host4 ~]# systemctl enable php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

Webサーバー再起動

[root@host4 ~]# systemctl restart httpd

phpバージョン確認

[root@host4 ~]# php -v
PHP 7.4.11 (cli) (built: Sep 29 2020 10:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies
    with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans

Imagickをphpで使う

[root@host4 ~]# dnf --enablerepo=epel,remi,remi-safe install ImageMagick

[root@host4 ~]# dnf --enablerepo=epel,remi,remi-safe install ImageMagick-devel

[root@host4 ~]# pecl install imagick

[root@host4 ~]# find / -name imagick.so
/usr/lib64/php/modules/imagick.so

[root@host4 ~]# vi /etc/php.d/imagick.ini
; Enable imagick extension module
extension=imagick.so

[root@host4 ~]# systemctl restart php-fpm

[root@host4 ~]# systemctl restart httpd