Rocky Linux8にRemi Repositoryを使ってPHP8をインストール
Rocky Linux8.5の環境で、Remi Repositoryを使って、PHP8.1のインストールを行う方法についてまとめています。
ちなみに、これは、AlmaLinux8.5の環境でも同様に動作します。
Remi Repositoryの導入
Remi Repositoryの導入手順についてです。
Remi Repositoryとは?
Remi Repositoryは、Linuxユーザーに、PHPスタックの最新バージョン等を提供するために運用されているリポジトリです。これを導入することで、比較的簡単に最新のPHP環境を構築することができます。
Providing the latest versions of the PHP stack, full featured, and some other software, to the Fedora and Enterprise Linux (RHEL, CentOS, Oracle, Scientific Linux, ...) users.
Remi Repositoryのインストール
「Distribution choice」から、該当のリポジトリURLを確認します。
Maintained Enterprise Linux (RHEL / CentOS / Other clones)
Enterprise Linux 8 - repository auto-configuration package : remi-release-8.rpm
確認できたら、インストールを行います。
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
remi-release-8.rpm 25 kB/s | 26 kB 00:01
依存関係が解決しました。
==============================================================================================
パッケージ Arch バージョン リポジトリー サイズ
==============================================================================================
インストール:
remi-release noarch 8.5-2.el8.remi @commandline 26 k
依存関係のインストール:
epel-release noarch 8-13.el8 extras 23 k
トランザクションの概要
==============================================================================================
インストール 2 パッケージ
インストール済み:
epel-release-8-13.el8.noarch remi-release-8.5-2.el8.remi.noarch
完了しました!
Remiリポジトリをインストールすると、依存関係のEPELリポジトリも自動的にインストールされます。
Remi Repositoryの設定
EPELリポジトリやRemiリポジトリは、必要な時にだけ使いたいので、通常は無効になるように設定します。
現在有効なリポジトリを確認します。
# dnf repolist
repo id repo の名前
appstream Rocky Linux 8 - AppStream
baseos Rocky Linux 8 - BaseOS
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras Rocky Linux 8 - Extras
remi-modular Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 8 - x86_64
通常時に必要ないリポジトリを無効にします。
# dnf config-manager --disable epel epel-modular remi-modular remi-safe
無効になったことを確認します。
# dnf repolist
repo id repo の名前
appstream Rocky Linux 8 - AppStream
baseos Rocky Linux 8 - BaseOS
PHP8.1のインストール
必要なリポジトリの準備が整ったらPHPのインストールを行います。
バージョン管理で8.1を有効にする
remiリポジトリを有効にして、PHPのバージョンのリストを確認します。
# dnf --enablerepo=remi-modular module list php
現在は、7.2に[d] が付いており、7.2がデフォルトになっていることが確認できます。
Rocky Linux 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
php 7.4 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
php remi-8.1 common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
PHP8.1を有効にします。
# dnf --enablerepo=remi-modular module enable php:remi-8.1
有効になったことを確認します。
# dnf --enablerepo=remi-modular module list php
8.1に[e] が付いており、8.1が有効になっていることが確認できます。
Rocky Linux 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
php 7.4 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
php remi-8.1 [e] common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
PHPのインストール
8.1が有効になっていることが確認できたら、PHPのインストールを行います。
必要に応じて、運用上必要なパッケージも指定してインストールします。
# dnf --enablerepo=epel,remi,remi-modular install php php-devel php-mbstring php-mcrypt php-mysqlnd php-gd php-pear php-memcached php-zip
トランザクションの概要
==============================================================================================
インストール 137 パッケージ
インストール済み:
apr-1.6.3-12.el8.x86_64 apr-util-1.6.1-6.el8.1.x86_64
apr-util-bdb-1.6.1-6.el8.1.x86_64 apr-util-openssl-1.6.1-6.el8.1.x86_64
autoconf-2.69-29.el8.noarch automake-1.16.1-7.el8.noarch
binutils-2.30-108.el8_5.1.x86_64 cmake-filesystem-3.20.2-4.el8.x86_64
cpp-8.5.0-3.el8.x86_64 dejavu-fonts-common-2.35-7.el8.noarch
dejavu-sans-fonts-2.35-7.el8.noarch emacs-filesystem-1:26.1-7.el8.noarch
fastlz-0.1.0-0.12.20070619svnrev12.el8.x86_64 fontconfig-2.13.1-4.el8.x86_64
fontpackages-filesystem-1.44-22.el8.noarch fribidi-1.0.4-8.el8.x86_64
gcc-8.5.0-3.el8.x86_64 gcc-c++-8.5.0-3.el8.x86_64
gd3php-2.3.3-4.el8.remi.x86_64 glibc-devel-2.28-164.el8.x86_64
glibc-headers-2.28-164.el8.x86_64 graphite2-1.3.10-10.el8.x86_64
harfbuzz-1.7.5-3.el8.x86_64 httpd-2.4.37-43.module+el8.5.0+714+5ec56ee8.x86_64
httpd-filesystem-2.4.37-43.module+el8.5.0+714+5ec56ee8.noarch httpd-tools-2.4.37-43.module+el8.5.0+714+5ec56ee8.x86_64
isl-0.16.1-6.el8.x86_64 jbigkit-libs-2.1-14.el8.x86_64
kernel-headers-4.18.0-348.7.1.el8_5.x86_64 keyutils-libs-devel-1.5.10-9.el8.x86_64
krb5-devel-1.18.2-14.el8.x86_64 libX11-1.6.8-5.el8.x86_64
libX11-common-1.6.8-5.el8.noarch libXau-1.0.9-3.el8.x86_64
libXpm-3.5.12-8.el8.x86_64 libcom_err-devel-1.45.6-2.el8.x86_64
libimagequant-2.12.5-1.el8.x86_64 libjpeg-turbo-1.5.3-12.el8.x86_64
libkadm5-1.18.2-14.el8.x86_64 libmcrypt-2.5.8-26.el8.x86_64
libmpc-1.1.0-9.1.el8.x86_64 libpkgconf-1.4.2-1.el8.x86_64
libraqm-0.7.0-4.el8.x86_64 libselinux-devel-2.9-5.el8.x86_64
libsepol-devel-2.9-3.el8.x86_64 libsodium-1.0.18-2.el8.x86_64
libstdc++-devel-8.5.0-3.el8.x86_64 libtiff-4.0.9-20.el8.x86_64
libtool-2.4.6-25.el8.x86_64 libverto-devel-0.3.0-5.el8.x86_64
libwebp-1.0.0-5.el8.x86_64 libxcb-1.13.1-1.el8.x86_64
libxcrypt-devel-4.1.1-6.el8.x86_64 libxml2-devel-2.9.7-11.el8.x86_64
libxslt-1.1.32-6.el8.x86_64 libzip-1.8.0-1.el8.remi.x86_64
m4-1.4.18-7.el8.x86_64 mailcap-2.1.48-3.el8.noarch
make-1:4.2.1-10.el8.x86_64 mod_http2-1.15.7-3.module+el8.5.0+695+1fa8055e.x86_64
nginx-filesystem-1:1.14.1-9.module+el8.4.0+542+81547229.noarch oniguruma5php-6.9.7.1-1.el8.remi.x86_64
openssl-devel-1:1.1.1k-4.el8.x86_64 pcre2-devel-10.32-2.el8.x86_64
pcre2-utf16-10.32-2.el8.x86_64 pcre2-utf32-10.32-2.el8.x86_64
perl-Carp-1.42-396.el8.noarch perl-Data-Dumper-2.167-399.el8.x86_64
perl-Digest-1.17-395.el8.noarch perl-Digest-MD5-2.55-396.el8.x86_64
perl-Encode-4:2.97-3.el8.x86_64 perl-Errno-1.28-420.el8.x86_64
perl-Exporter-5.72-396.el8.noarch perl-File-Path-2.15-2.el8.noarch
perl-File-Temp-0.230.600-1.el8.noarch perl-Getopt-Long-1:2.50-4.el8.noarch
perl-HTTP-Tiny-0.074-1.el8.noarch perl-IO-1.38-420.el8.x86_64
perl-IO-Socket-IP-0.39-5.el8.noarch perl-IO-Socket-SSL-2.066-4.module+el8.4.0+512+d4f0fc54.noarch
perl-MIME-Base64-3.15-396.el8.x86_64 perl-Mozilla-CA-20160104-7.module+el8.4.0+529+e3b3e624.noarch
perl-Net-SSLeay-1.88-1.module+el8.4.0+512+d4f0fc54.x86_64 perl-PathTools-3.74-1.el8.x86_64
perl-Pod-Escapes-1:1.07-395.el8.noarch perl-Pod-Perldoc-3.28-396.el8.noarch
perl-Pod-Simple-1:3.35-395.el8.noarch perl-Pod-Usage-4:1.69-395.el8.noarch
perl-Scalar-List-Utils-3:1.49-2.el8.x86_64 perl-Socket-4:2.027-3.el8.x86_64
perl-Storable-1:3.11-3.el8.x86_64 perl-Term-ANSIColor-4.06-396.el8.noarch
perl-Term-Cap-1.17-395.el8.noarch perl-Text-ParseWords-3.30-395.el8.noarch
perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch perl-Thread-Queue-3.13-1.el8.noarch
perl-Time-Local-1:1.280-1.el8.noarch perl-URI-1.73-3.el8.noarch
perl-Unicode-Normalize-1.25-396.el8.x86_64 perl-constant-1.33-396.el8.noarch
perl-interpreter-4:5.26.3-420.el8.x86_64 perl-libnet-3.11-3.el8.noarch
perl-libs-4:5.26.3-420.el8.x86_64 perl-macros-4:5.26.3-420.el8.x86_64
perl-parent-1:0.237-1.el8.noarch perl-podlators-4.11-1.el8.noarch
perl-threads-1:2.21-2.el8.x86_64 perl-threads-shared-1.58-2.el8.x86_64
php-8.1.1-1.el8.remi.x86_64 php-cli-8.1.1-1.el8.remi.x86_64
php-common-8.1.1-1.el8.remi.x86_64 php-devel-8.1.1-1.el8.remi.x86_64
php-fedora-autoloader-1.0.1-2.el8.remi.noarch php-fpm-8.1.1-1.el8.remi.x86_64
php-gd-8.1.1-1.el8.remi.x86_64 php-mbstring-8.1.1-1.el8.remi.x86_64
php-mysqlnd-8.1.1-1.el8.remi.x86_64 php-nikic-php-parser4-4.13.2-1.el8.remi.noarch
php-opcache-8.1.1-1.el8.remi.x86_64 php-pdo-8.1.1-1.el8.remi.x86_64
php-pear-1:1.10.13-1.el8.remi.noarch php-pecl-igbinary-3.2.7-1.el8.remi.8.1.x86_64
php-pecl-mcrypt-1.0.4-5.el8.remi.8.1.x86_64 php-pecl-memcached-3.1.5-11.el8.remi.8.1.x86_64
php-pecl-msgpack-2.2.0~RC1-4.el8.remi.8.1.x86_64 php-pecl-zip-1.20.0-1.el8.remi.8.1.x86_64
php-process-8.1.1-1.el8.remi.x86_64 php-sodium-8.1.1-1.el8.remi.x86_64
php-xml-8.1.1-1.el8.remi.x86_64 pkgconf-1.4.2-1.el8.x86_64
pkgconf-m4-1.4.2-1.el8.noarch pkgconf-pkg-config-1.4.2-1.el8.x86_64
remi-libmemcached-awesome-1.1.1-1.el8.remi.x86_64 rocky-logos-httpd-85.0-3.el8.noarch
tar-2:1.30-5.el8.x86_64 xz-devel-5.2.4-3.el8.1.x86_64
zlib-devel-1.2.11-17.el8.x86_64
完了しました!
PHPのバージョン確認
バージョンを確認します。
# php -v
8.1になってることが確認できます。
PHP 8.1.1 (cli) (built: Dec 15 2021 02:00:45) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies
PHPの動作確認
PHPのインストールが完了したら、WEBサーバでの動作を確認します。ここでは、Apacheで動作する前提で進めます。
Apacheの設定
ApacheのPHP設定を確認します。
# vi /etc/httpd/conf.d/php.conf
phpもしくは、pharの拡張子で、PHPモジュールが読み込まれていない場合に、php-fpmで動作するようになっています。
# Redirect to local php-fpm if mod_php (5 or 7) is not available
<ifmodule !mod_php5.c="">
<ifmodule !mod_php7.c="">
<ifmodule !mod_php.c="">
# Enable http authorization headers
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
<filesmatch \.(php|phar)$="">
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</filesmatch>
</ifmodule>
</ifmodule>
</ifmodule>
php-fpmの設定
php-fpmの設定を確認します。php-fpmは、WEBサーバとは独立したプロセスとして動作します。
# vi /etc/php-fpm.d/www.conf
php-fpmを動作させるユーザーとグループが、 apacheになっていることを確認します。
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
phpの動作確認
最後にPHPが動作することを確認します。
動作確認のためにphpのファイルを作成します。
# vi /var/www/html/test.php
<?php phpinfo(); ?>
ブラウザで/test.phpにアクセスするとPHPが動作していることが確認できます。
2022年01月19日に投稿されました。
2022年07月26日に更新されました。