RockyLinux8.0へのPHPをインストール手順

RockyLinux8は標準で用意されているリポジトリからはPHP8.x系はインストールできないので、remi repositoryを使ったインストール方法を記載

PHP公式

CentOSバージョン確認

[root@i-12100000422539 ~]# cat /etc/redhat-release 
Rocky Linux release 8.7 (Green Obsidian)
[root@i-12100000422539 ~]# 

インストール手順

Remi repositoryをインストール

remiリポジトリとは

remiリポジトリは、サードパーティリポジトリと呼ばれる。CentOSが標準で用意しているサードパーティが提供しているリポジトリの一種。PHPスタックの最新バージョン、フル機能やその他のソフトウェアを、Fedora及びEnterprise Linux(RHEL、CentOS等)に提供しています。

REMIリポジトリ

remiが提供しているパッケージには、php以外にもApacheやMySQLもはいっているので、LAMP環境を構築しやすいメリットがあります。

remiの留意事項
最新パッケージは入手できますが、未知のセキュリティホールが残っていたりするので信頼性の面でデメリットがあります。

$ sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

PHP 8.0をインストール

Rocky Linux AppStream リポジトリと Remi モジュラー リポジトリがあります。PHPのデフォルトのインストールは、AppStreamリポジトリとなっており、PHP7.2がインストールされます。

Remiリポジトリでは、PHP7.2~PHP8.2まで選択してインストールすることができます。

[root@i-12100000422539 ~]# dnf module list php
Last metadata expiration check: 0:44:21 ago on Tue 31 Jan 2023 12:05:08 AM UTC.
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                                            
php                                               8.0                                                       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 [e]                                              common [d] [i], devel, minimal                                             PHP scripting language                                            
php                                               remi-8.1                                                  common [d], devel, minimal                                                 PHP scripting language                                            
php                                               remi-8.2                                                  common [d], devel, minimal                                                 PHP scripting language                                            

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[root@i-12100000422539 ~]# 

下記のコマンドを使用して、PHPパッケージのデフォルトインストールをRemiリポジトリPHP8.0に変更します。

$ sudo dnf module install php:remi-8.0

PHP拡張機能のインストール

必要用に応じて、PHPからMySQLサーバーへ接続するための機能をインストールします。

[root@i-12100000422539 ~]# dnf install php-mysql
Last metadata expiration check: 0:53:18 ago on Tue 31 Jan 2023 12:05:08 AM UTC.
Dependencies resolved.
=========================================================================================================================================================================================================================================================
 Package                                                 Architecture                                    Version                                                                             Repository                                             Size
=========================================================================================================================================================================================================================================================
Installing:
 php-pecl-mysql                                          x86_64                                          1.0.0-0.24.20201210.6ca4fa4.el8.remi.8.0                                            remi-modular                                           43 k
Installing dependencies:
 php-mysqlnd                                             x86_64                                          8.0.27-1.el8.remi                                                                   remi-modular                                          265 k

Transaction Summary
=========================================================================================================================================================================================================================================================
Install  2 Packages

Total download size: 308 k
Installed size: 1.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-pecl-mysql-1.0.0-0.24.20201210.6ca4fa4.el8.remi.8.0.x86_64.rpm                                                                                                                                                 44 kB/s |  43 kB     00:00    
(2/2): php-mysqlnd-8.0.27-1.el8.remi.x86_64.rpm                                                                                                                                                                          178 kB/s | 265 kB     00:01    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                    154 kB/s | 308 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                 1/1 
  Installing       : php-mysqlnd-8.0.27-1.el8.remi.x86_64                                                                                                                                                                                            1/2 
  Installing       : php-pecl-mysql-1.0.0-0.24.20201210.6ca4fa4.el8.remi.8.0.x86_64                                                                                                                                                                  2/2 
  Running scriptlet: php-pecl-mysql-1.0.0-0.24.20201210.6ca4fa4.el8.remi.8.0.x86_64                                                                                                                                                                  2/2 
  Verifying        : php-mysqlnd-8.0.27-1.el8.remi.x86_64                                                                                                                                                                                            1/2 
  Verifying        : php-pecl-mysql-1.0.0-0.24.20201210.6ca4fa4.el8.remi.8.0.x86_64                                                                                                                                                                  2/2 

Installed:
  php-mysqlnd-8.0.27-1.el8.remi.x86_64                                                                           php-pecl-mysql-1.0.0-0.24.20201210.6ca4fa4.el8.remi.8.0.x86_64                                                                          

Complete!
[root@i-12100000422539 ~]# 

PHPのバージョン確認

PHP 8.0がインストールされたことを確認します。

[root@i-12100000422539 ~]# php -v
PHP 8.0.27 (cli) (built: Jan  3 2023 16:17:26) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.27, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.27, Copyright (c), by Zend Technologies

php.iniのバックアップ

オリジナルのphp.iniのバックアップをしておきます。これは不具合があった場合戻せるようにする必要があるためです。

php.iniを変更した場合は、Webサーバー(apache、nginx)再起動を行う必要があります。

php.iniとは
PHPプログラムの全体的な動作や環境を設定するファイルのことです。主に文字コード設定、マルチバイト文字処理に関する設定、タイムゾーン設定、メモリ管理、セキュリティなどがあります。

# cp /etc/php.ini /etc/php.ini.bk