CentOS Stream 9 に PHP をインストールする方法

PHP は、Web 開発用に設計された、広く使用されているサーバー側スクリプト言語ですが、汎用プログラミング言語としても使用されています。特に、動的でインタラクティブな Web サイトの作成に適しています。最新バージョンの PHP (8.3、8.2、8.1 など) をインストールすると、最新の機能、パフォーマンスの改善、セキュリティ パッチを利用できるようになります。CentOS Stream 9 では、最新の PHP パッケージを提供することで有名な Remi RPM リポジトリを使用して、これらのバージョンを簡単にインストールできます。

このガイドでは、Remi リポジトリを有効にし、CentOS Stream 9 に最新の PHP ビルドをインストールするプロセスについて説明します。

CentOS に Remi PHP RPM をインポートする

PHP インストール前に CentOS ストリームを更新する

まず CentOS Stream システムを更新して、既存のパッケージがすべて最新であることを確認することが重要です。この手順は、システムの安定性とセキュリティにとって不可欠です。

ターミナルを開き、次のコマンドを実行してシステムを更新します。

sudo dnf upgrade --refresh

このコマンドはパッケージ データベースを更新し、インストールされているすべてのパッケージを利用可能な最新バージョンにアップグレードします。

Remi PHP RPMリポジトリのインポート

Remi PHP リポジトリは、最新の PHP バージョンを提供するサードパーティのリポジトリです。Remi リポジトリを追加する前に、Enterprise Linux 用の追加パッケージを提供する EPEL リポジトリをインストールする必要があります。

まず、CodeReady Linux Builder (CRB) リポジトリを有効にすることをお勧めしますが、これはオプションです。追加の開発者ツールとライブラリが提供されます。CRB を有効にするには、次のコマンドを使用します。

sudo dnf config-manager --set-enabled crb

CRB を有効にした後、次のコマンドを使用して EL9 の EPEL リポジトリをインストールします。

sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm

最後に、EL9 用の Remi PHP リポジトリをインポートします。

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

CentOS Stream で PHP Remi リポジトリを有効にする

利用可能な PHP モジュールの一覧

PHP をインストールする前に、Remi リポジトリで利用可能な PHP バージョンを特定することが重要です。この手順により、どのバージョンをインストールするかを十分に検討した上で決定できるようになります。

すべての PHP モジュールを一覧表示するには、次のコマンドを使用します。

dnf module list php

このコマンドは、Remi リポジトリで利用可能なすべての PHP バージョンを表示します。これは、要件に最適なバージョンを選択するための重要なステップです。

Remi のリポジトリの GPG キーをインポートする

プロンプトが表示されたら、Remi のリポジトリの GPG キーのインポートを確認する必要があります。この手順は、インストールしようとしているパッケージの信頼性を確認するため、セキュリティ上の理由から重要です。インポートを続行するかどうかを尋ねられたら、「Y」と入力します。

希望する PHP バージョンの有効化

利用可能な PHP バージョンを確認したら、ニーズに合った特定のバージョンを有効にできます。プロジェクトには、安定していて十分にサポートされている PHP バージョンを選択することをお勧めします。

Remi リポジトリから特定の PHP バージョンを有効にするには、次のコマンドを使用します。

sudo dnf module enable php:remi-8.3 -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf module enable php:remi-8.1 -y

各コマンドは、Remi リポジトリから異なるバージョンの PHP をアクティブ化します。インストールするバージョンに対応するコマンドを選択してください。これらのコマンドの「-y」フラグは、インストールの自動確認を示し、プロセスを効率化します。

CentOS StreamにPHP 8.3、8.2、または8.1をインストールする

PHP インストール用の Web サーバーの選択

適切な Web サーバーを選択することは、PHP を設定する上で重要なステップです。CentOS Stream は Apache と Nginx の両方をサポートしていますが、それぞれに異なる PHP パッケージが必要です。

Apache (httpd) PHP インストール

Apache を Web サーバーとして使用している場合、次のコマンドは、コマンド ラインから PHP スクリプトを実行するために不可欠な PHP コマンド ライン インターフェイス (CLI) とともに PHP をインストールします。

sudo dnf install php php-cli -y

Nginx PHP インストール

Nginx を使用している場合は、PHP CLI と一緒に PHP FastCGI Process Manager (FPM) をインストールする必要があります。PHP-FPM は、トラフィック量の多いサイトに非常に効率的な代替 PHP FastCGI 実装です。

sudo dnf install php-fpm php-cli -y

PHP インストールの確認

インストール後、PHP が正しくインストールされていることを確認することが重要です。インストールされている PHP のバージョンを確認するには、次のコマンドを実行します。

php -v

このコマンドは現在の PHP バージョンを表示し、インストールが成功したことを確認します。

一般的な PHP 拡張機能のインストール

PHP の機能を強化するには、追加の拡張機能をインストールする必要がある場合があります。以下のコマンドは、さまざまな CMS プラットフォームや開発ニーズに不可欠な、一般的に使用される PHP 拡張機能をインストールします。

sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache

セットアップに必要のない拡張機能を確認して省略することをお勧めします。

読み込まれた PHP モジュールの表示

現在ロードされている PHP モジュールを検査するには、次のコマンドを実行します。

php -m

最適なシステム パフォーマンスを維持するために、定期的に監視し、不要なモジュールを削除することをお勧めします。

PHP開発ブランチのインストール

特定の開発要件では、PHP 開発ブランチが必要になる場合があります。次のコマンドでインストールします。

sudo dnf install php-devel

注意: このインストールでは複数の依存関係が導入されます。PHP 開発環境に特別なニーズがある場合にのみ続行してください。

PHP開発ツールの追加

デバッグなどの高度な開発機能については、以下を使用して追加のツールをインストールします。

sudo dnf install php-xdebug php-pcov

これらのツールは PHP でのデバッグやコード カバレッジ分析に不可欠ですが、追加の依存関係が導入されるので注意が必要です。

CentOS ストリームで PHP-FPM 用の Nginx ユーザーを構成する

Nginx の PHP-FPM 設定の編集

CentOS Stream では、PHP-FPM のデフォルト ユーザーは「Apache」に設定されていますが、これは Nginx の設定と互換性がありません。PHP-FPM を Nginx 用に最適化するには、構成の変更が必要です。

PHP-FPM 設定へのアクセス

まず、PHP-FPM 構成ファイルを開きます。このファイルには、PHP-FPM が Web サーバーと対話する方法に固有の設定が含まれています。www.conf ファイルを編集するには、次のコマンドを使用します。

sudo nano /etc/php-fpm.d/www.conf

このコマンドは、PHP-FPM 構成ファイルを使用して Nano テキスト エディターを起動します。

ユーザーとグループの設定の変更

設定ファイルで、ユーザーとグループを指定する行を見つけます。デフォルトでは、これらは「Apache」に設定されています。PHP-FPM サービスを Nginx と一致させるには、ユーザーとグループの両方を「Nginx」に変更します。

; Unix プロセスのユーザー/グループ ; 注: ユーザーは必須です。グループが設定されていない場合は、デフォルトのユーザーのグループが使用されます。 ; RPM: apache httpd として一部のディレクトリにアクセスできるように選択 user = nginx ; RPM: ログ ディレクトリへの書き込みを許可されたグループを保持します。 group = nginx

実際の視覚的な例を以下に示します。

設定ファイルの保存と終了

変更を加えたら、CTRL+O を押してファイルを保存し、CTRL+X で終了します。この操作により、変更が保存され、Nano エディターが閉じます。

PHP-FPM サービスの再起動

変更を適用するには、次のコマンドを使用して PHP-FPM サービスを再起動します。

sudo systemctl restart php-fpm

このコマンドにより、PHP-FPM が Nginx ユーザーとグループの下で実行され、CentOS Stream 上の Nginx Web サーバー設定の互換性とセキュリティが強化されます。

Nginx PHP-FPM サーバー ブロック コードの例

PHP 処理用の Nginx サーバー ブロックの構成

CentOS Stream 上の Nginx で PHP 処理を有効にするには、Nginx 構成ファイル内のサーバー ブロックを変更する必要があります。次の例は、PHP ファイルの処理に必要な構成を示しています。この設定では、PHP の場所ブロックを指定する必要があります。

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

このコードにより、Nginx が PHP ファイルを正しく処理し、PHP-FPM プロセッサにリダイレクトできるようになります。簡単に説明すると次のようになります。

  • location ~ .php$: このディレクティブは、Nginx に、.php で終わるすべてのファイルに次のルールを適用するように指示します。チルダ ~ は、これが正規表現の一致であることを示します。
  • try_files $uri =404: この行は、指定された URI に PHP ファイルが存在するかどうかを確認します。存在しない場合、Nginx は 404 エラーを返します。これは、不正なスクリプトの実行を防ぐためのセキュリティ対策です。
  • fastcgi_pass unix:/run/php-fpm/www.sock;: このディレクティブは、PHP-FPM サービスがリッスンしているソケットを指定します。この場合、Nginx は PHP リクエストを /run/php-fpm/www.sock ソケットを介して PHP-FPM プロセスに渡します。
  • fastcgi_index index.php;: これは、ディレクトリにアクセスしたときに実行されるデフォルトのスクリプトとして index.php を設定します。
  • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;: この行は、PHP-FPM がファイルシステム上のスクリプト ファイルを見つけるために不可欠な SCRIPT_FILENAME パラメータを設定します。ドキュメント ルートとスクリプト名を組み合わせます。
  • include fastcgi_params;: これには、Nginx によって提供されるデフォルトの FastCGI パラメータが含まれます。これらは、PHP-FPM が正しく機能するために必要な標準設定です。

この構成により、Nginx は PHP リクエストを PHP-FPM サービスに渡して処理することで、PHP リクエストを正しく処理できるようになります。これは、Nginx サーバー上で PHP ベースの Web サイトやアプリケーションを実行するための重要なステップです。

Nginx 設定の検証

サーバー ブロックを更新した後、次のコマンドを使用して、Nginx 構成に構文エラーがないか確認します。

sudo nginx -t

構文チェックが成功したことを確認する出力例:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

この手順により、Nginx 構成に構文エラーがなくなり、実装の準備が整います。

Nginx サービスの再起動

PHP-FPM 設定の変更を適用するには、Nginx サービスを再起動します。

sudo systemctl restart nginx

この再起動により変更が有効になり、Nginx は更新されたサーバー ブロック構成を使用して PHP ファイルを処理できるようになります。

結論

CentOS Stream 9 の Remi RPM リポジトリから PHP をインストールすることで、システムに 8.3、8.2、8.1 などの最新の安定したバージョンの PHP が装備されていることが保証されます。このセットアップにより、パフォーマンスが向上し、最新の機能にアクセスでき、Web アプリケーションのセキュリティが向上します。Remi リポジトリから PHP を定期的に更新すると、システムのセキュリティが維持され、PHP の最新の開発が反映されます。動的な Web アプリケーションの構築と保守に PHP が提供する柔軟性とパワーを活用できます。

Joshua James

コメントを残す