Rocky Linux 9/8 に PHP をインストールする方法

PHP は、Web 開発に特に適した人気の高い汎用スクリプト言語です。高速で柔軟性があり、実用的であるため、ブログから世界で最も人気のある Web サイトまで、あらゆるものをサポートしています。PHP はさまざまなデータベースを幅広くサポートしているため、サーバー側スクリプトに不可欠なツールとなっています。

次のガイドでは、コマンドライン コマンドを使用して、Rocky Linux 9 または 8 に PHP をインストールする手順を説明します。インストール方法では、PHP 8.1、8.2、および 8.3 の最新の安定ビルド用の Remi RPM リポジトリを使用します。

Remi PHP RPMリポジトリをインポートする

PHP をインストールする前に Rocky Linux を更新する

まず、PHP のインストールに備えて Rocky Linux システムを更新します。ターミナルを開いて、次のように入力します。

sudo dnf upgrade --refresh

PHP Remiリポジトリをインポートする

EPEL リポジトリのセットアップ

EPEL (Extra Packages for Enterprise Linux) は、Rocky Linux の追加ソフトウェア パッケージにとって重要です。以下は、最新の EL9 リリースまたは EL8 用に Rocky Linux に EPEL をインストールするための 2 つのオプションです。

Rocky Linux 9 用の EPEL をインポートする

CRBを有効にする

CRB は、より多くの開発ツールへのアクセスを提供します。以下を使用します。

sudo dnf config-manager --set-enabled crb
EPELリポジトリをインストールする

Rocky Linux 9 の最新の 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

EL 9 用に設計された Remi リポジトリを組み込みます。

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

Rocky Linux 8 用の EPEL をインポートする

PowerToolsリポジトリを有効にする

PowerTools は PHP 開発ツールに不可欠です。

sudo dnf config-manager --set-enabled powertools
Rocky Linux 8 で EPEL を有効にする

Rocky Linux 8 用の EPEL リポジトリをインストールします。

sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
Remi EL 8 リポジトリのインポート

EPEL がインストールされたら、EL 8 用の PHP を含む Remi RPM をインポートします。

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

RemiリポジトリからPHP (8.x)を有効にする

PHPバージョンの確認

まず、Remi リポジトリで利用可能な PHP バージョンを確認します。これにより、必要な PHP バージョンにアクセスできるようになります。

ターミナルで実行します:

dnf module list php

プロンプトが表示されたら、「(Y)」と入力して、Remi のリポジトリの GPG キーをインポートします。

PHPバージョンの選択

PHP 8.3を有効にする

安定した最新バージョンの PHP 8.3 をインストールするには、次のコマンドを使用します。

sudo dnf module enable php:remi-8.3 -y

PHP 8.2を有効にする

PHP 8.2 の場合、この特定のバージョンを必要とするアプリケーションに適しています:

sudo dnf module enable php:remi-8.2 -y

PHP 8.1を有効にする

特定のアプリケーションとの互換性に最適な PHP 8.1 を有効にするには:

sudo dnf module enable php:remi-8.1 -y

PHPのインストールを完了する

Apache または Nginx サポート用の PHP のインストール

Remi PHP リポジトリを有効にした後、Apache または Nginx のいずれかの Web サーバーのニーズに合わせて PHP をインストールできます。

Apache (httpd) PHP インストール

sudo dnf install php php-cli -y

Nginx PHP インストール

sudo dnf install php-fpm php-cli -y

PHP インストールの確認

次のコマンドを実行して PHP のインストールを確認します。

php -v

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

プロジェクトのニーズに基づいて、必須の 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

簡単なインストール

コンパクトインストールコマンドの場合:

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

それでは、これらの PHP 拡張機能のそれぞれが何をするのかを詳しく見ていきましょう。

  • php-cli: PHP 用のコマンド ライン インターフェイス。シェルで PHP スクリプトを実行するのに役立ちます。
  • php-fpm: FastCGI プロセス マネージャー。PHP リクエストの処理と提供に役立ちます。
  • PHP カール: さまざまな種類のサーバーやプロトコルに接続して通信できます。
  • php-mysqlnd: MySQL データベース接続に使用される MySQL ネイティブ ドライバー。
  • php-gd: グラフィックス ドロー。画像ファイルの作成と操作に役立ちます。
  • php-opcache: オペコード キャッシュ。PHP の実行を高速化するために使用されます。
  • php-zip: zip アーカイブを操作できます。
  • php-intl: 国際的な文字セットとロケールを操作するための国際化拡張機能。
  • PHP共通: 複数の PHP モジュールで使用される共通のファイルと設定。
  • php-bcmath: バイナリ計算機では、任意の精度の計算が可能です。
  • php-imagick: ImageMagick ライブラリを使用して画像を作成および変更するためのメソッドを提供します。
  • php-xmlrpc: XML-RPC サーバーの作成を可能にし、XML-RPC リクエストの送信を容易にします。
  • PHPJSON の: JSON データをエンコードおよびデコードするための JSON (JavaScript Object Notation) 拡張機能。
  • php-readline: 端末から 1 行のデータを読み取ることができます。
  • php-memcached: 高速な分散メモリ オブジェクト キャッシュを提供します。
  • PHP-Redis の: Redis とインターフェースするための PHP 拡張機能。
  • php-mbstring: 非 ASCII 文字列を処理するためのマルチバイト文字列。
  • php-apcu: APC ユーザー キャッシュ、APC に基づくユーザーランド キャッシュ拡張機能。
  • php-xml: XML ドキュメントを解析するための XML パーサー。
  • php-dom: ドキュメント オブジェクト モデル。XML ドキュメントをオブジェクト指向で操作します。
  • php-memcache: memcached への便利な手続き型およびオブジェクト指向のインターフェースを提供します。
  • PHP-ソープ: SOAP サーバーおよびクライアントの作成に使用されます。
  • php-ldap: ディレクトリ情報にアクセスして管理するために使用される軽量ディレクトリ アクセス プロトコル。
  • php-pdo: PHP データ オブジェクト。複数のデータベースへの統一されたアクセス方法を提供するデータベース アクセス レイヤーです。

次のコマンドを使用すると、いつでもロードされたモジュールを表示できます。

php -m

パフォーマンス効率を高めるために、定期的な監視と不要なモジュールの削除をお勧めします。

PHP開発ツールのインストール

開発目的で、PHP 開発ブランチとデバッグ ツールをインストールします。

PHP 開発ブランチ

sudo dnf install php-devel

PHP デバッグツール

sudo dnf install php-xdebug php-pcov

このバージョンをインストールすると複数の依存関係が導入されることに注意してください。PHP 開発で特に必要な場合や特別な要件がない限り、インストールすることはお勧めしません。

Rocky Linux で PHP-FPM Nginx ユーザーを構成する

Nginx 用に PHP-FPM を調整する

Rocky Linux などの RHEL ベースのディストリビューションでは、PHP-FPM にデフォルトで「Apache」ユーザーが使用されますが、これは Nginx の設定には適していません。Nginx で最適に機能させるには、これを変更することが重要です。

PHP-FPM 設定の編集

設定ファイルを開く

アクセス www.conf 編集用ファイル:

sudo nano /etc/php-fpm.d/www.conf
ユーザーとグループの設定を変更する

ファイル内で Apache ユーザーとグループを Nginx に変更します。

投稿の変更:

(CTRL+O) を押して変更内容を保存し、(CTRL+X) で終了します。

PHP-FPMサービスを再起動する

設定を変更したら、変更を適用するために PHP-FPM を再起動します。

sudo systemctl restart php-fpm

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

PHP処理のためのNginxの設定

NginxがPHPファイルを処理できるようにするには、サーバーブロックを正しく設定する必要があります。次の例は、 server{} PHP ファイルを処理するためのブロック。

Nginx PHP-FPM 設定
    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 設定の検証

構成を更新した後、構文エラーがないことを確認するために検証します。

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 サービスを再起動します。

sudo systemctl restart nginx

この再起動は、変更と、Nginx が新しい構成で PHP ファイルの処理を開始するために不可欠です。

結論

さて、これで私たちの旅は終わりです。PHP を Rocky Linux 上にセットアップし、Apache または Nginx 用に調整し、最適なパフォーマンスを得るために PHP-FPM を微調整しました。PHP モジュールと構成を定期的にチェックすることで、スムーズに動作し続けることを覚えておいてください。また、変更後はサービスを再起動することを忘れないでください。

Joshua James

コメントを残す