ヘルプ: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