PHP 7.4 を Remi's RPM repository からインストール(AlmaLinux)

提供:あわ自由帳

メインページ > Category:自宅サーバー > AlmaLinux 8 で自宅サーバー構築  > PHP 7.4 を Remi's RPM repository からインストール(AlmaLinux)

  • 自宅サーバーで、動作確認しています。導入される方は自己責任で行ってください。
  • Imagick 使えます。
  • dnf用リポジトリ追加(AlmaLinux)を導入済みとします。

CentOSバージョン確認

[root@host4 ~]# cat /etc/redhat-release
AlmaLinux release 8.3 (Purple Manul)

インストール

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

[root@host4 ~]# dnf module list php
AlmaLinux 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
AlmaLinux 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 アンインストール

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

[root@host4 ~]# php -v

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

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

インストール実行

※行の長さの関係で途中に改行が入ってます。注意してください。

[root@host4 ~]# dnf --enablerepo=epel,remi,remi-safe install php php-cli php-devel php-common php-mbstring php-mysqlnd php-fpm php-gd 
php-gmp php-mcrypt php-opcache php-pdo php-xml php-json
・
・
依存関係が解決しました。
===========================================================================================================
 パッケージ               Arch        バージョン                                   リポジトリー      サイズ
===========================================================================================================
インストール中:
 php                      x86_64      7.4.11-1.el8.remi                            remi-modular      3.0 M
 php-cli                  x86_64      7.4.11-1.el8.remi                            remi-modular      4.6 M
 php-common               x86_64      7.4.11-1.el8.remi                            remi-modular      1.2 M
 php-devel                x86_64      7.4.11-1.el8.remi                            remi-modular      1.1 M
 php-fpm                  x86_64      7.4.11-1.el8.remi                            remi-modular      1.6 M
 php-gd                   x86_64      7.4.11-1.el8.remi                            remi-modular       92 k
 php-gmp                  x86_64      7.4.11-1.el8.remi                            remi-modular       82 k
 php-json                 x86_64      7.4.11-1.el8.remi                            remi-modular       75 k
 php-mbstring             x86_64      7.4.11-1.el8.remi                            remi-modular      527 k
 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-pecl-mcrypt          x86_64      1.0.3-1.el8.remi.7.4                         remi-modular       35 k
 php-xml                  x86_64      7.4.11-1.el8.remi                            remi-modular      214 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
 libsodium                x86_64      1.0.18-2.el8                                 epel              162 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
 oniguruma5php            x86_64      6.9.5+rev1-3.el8.remi                        remi-safe         206 k
 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
 xz-devel                 x86_64      5.2.4-3.el8                                  BaseOS             62 k
弱い依存関係のインストール中:
 nginx-filesystem         noarch      1:1.14.1-9.module_el8.0.0+184+e34fea82       AppStream          24 k
 php-sodium               x86_64      7.4.11-1.el8.remi                            remi-modular       88 k

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

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

[root@host4 ~]# dnf --enablerepo=epel,remi,remi-safe install php-pear php-pecl-xdebug
・
・
依存関係が解決しました。
===========================================================================================================
 パッケージ                     Arch            バージョン                     リポジトリー          サイズ
===========================================================================================================
インストール中:
 php-pear                       noarch          1:1.10.12-2.el8.remi           remi-modular          365 k
 php-pecl-xdebug                x86_64          2.9.8-1.el8.remi.7.4           remi-modular          249 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

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

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

[root@host4 ~]# rpm -qa | grep php
oniguruma5php-6.9.5+rev1-3.el8.remi.x86_64
php-mysqlnd-7.4.11-1.el8.remi.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-json-7.4.11-1.el8.remi.x86_64
php-opcache-7.4.11-1.el8.remi.x86_64
php-7.4.11-1.el8.remi.x86_64
php-gmp-7.4.11-1.el8.remi.x86_64
php-pecl-xdebug-2.9.8-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-cli-7.4.11-1.el8.remi.x86_64
php-fedora-autoloader-1.0.1-2.el8.remi.noarch
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