Red Hat Training

A Red Hat training course is available for RHEL 8

19.6. PHP スクリプト言語の使用

Hypertext Preprocessor (PHP) はサーバー側のスクリプトに主に使用する汎用スクリプト言語で、Web サーバーを使用して PHP コードを実行できるようにします。

RHEL 8 では、PHP スクリプト言語は php モジュールにより提供されます。これは、複数のストリーム (バージョン) で利用できます。

ユースケースによっては、選択したモジュールストリームの特定のプロファイルをインストールできます。

  • common: Web サーバーを使用したサーバー側のスクリプトのデフォルトプロファイル。これには、広範に使用される拡張機能が複数含まれています。
  • minimal: このプロファイルは、Web サーバーを使用せずに PHP でのスクリプト用のコマンドラインインターフェイスのみをインストールします。
  • devel: このプロファイルには、共通 プロファイルのパッケージと開発用の追加パッケージが含まれます。

19.6.1. PHP スクリプト言語のインストール

選択したバージョンの php モジュールをインストールできます。

手順

  • デフォルトのプロファイルで php モジュールストリームをインストールするには、以下を使用します。

    # yum module install php:stream

    stream は、インストールする PHP のバージョンに置き換えます。

    たとえば、PHP 8.0 をインストールするには、以下を実行します。

    # yum module install php:8.0

    デフォルトの 共通 プロファイルは php-fpm パッケージもインストールし、Apache HTTP Server または nginx で使用する PHP を事前設定します。

  • php モジュールストリームの特定のプロファイルをインストールするには、以下を使用します。

    # yum module install php:stream/profile

    stream は、インストールする プロファイル の名前に置き換えます。

    たとえば、Web サーバーを使用しない PHP 8.0 をインストールするには、以下を実行します。

    # yum module install php:8.0/minimal

関連情報

19.6.2. Web サーバーでの PHP スクリプト言語の使用

19.6.2.1. Apache HTTP Server での PHP の使用

Red Hat Enterprise Linux 8 では、Apache HTTP Server で PHP を FastCGI プロセスサーバーとして実行できます。FastCGI Process Manager (FPM) は、Web サイトで高負荷を管理できるようにする代替の PHP FastCGI デーモンです。RHEL 8 では、PHP はデフォルトで FastCGI Process Manager を使用します。

FastCGI プロセスサーバーを使用して PHP コードを実行できます。

前提条件

手順

  1. httpd モジュールをインストールします。

    # yum module install httpd:2.4
  2. Apache HTTP Server を起動します。

    # systemctl start httpd

    または、Apache HTTP Server をシステムで実行している場合は、PHP のインストール後に httpd サービスを再起動します。

    # systemctl restart httpd
  3. php-fpm サービスを起動します。

    # systemctl start php-fpm
  4. 必要に応じて、両方のサービスが起動時に開始できるようにします。

    # systemctl enable php-fpm httpd
  5. PHP の設定に関する情報を取得するには、以下の内容を含む index.php ファイルを /var/www/html/ ディレクトリーに作成します。

    # echo '<?php phpinfo(); ?>' > /var/www/html/index.php
  6. index.php ファイルを実行するには、ブラウザーで以下を指定します。

    http://<hostname>/
  7. オプション: 特定の要件がある場合は、設定を調整します。

    • /etc/httpd/conf/httpd.conf - 一般的な httpd 設定
    • /etc/httpd/conf.d/php.conf - httpd の PHP 固有の設定
    • /usr/lib/systemd/system/httpd.service.d/php-fpm.conf - デフォルトでは、php-fpm サービスは httpd と一緒に起動します。
    • /etc/php-fpm.conf - FPM の主な設定
    • /etc/php-fpm.d/www.conf - デフォルトの www プール設定

例19.1 "Hello, World!" の実行 Apache HTTP Server を使用した PHP スクリプト

  1. /var/www/html/ ディレクトリーにプロジェクト用の hello ディレクトリーを作成します。

    # mkdir hello
  2. 以下の内容を含む /var/www/html/hello/ ディレクトリーに hello.php ファイルを作成します。

    # <!DOCTYPE html>
    <html>
    <head>
    <title>Hello, World! Page</title>
    </head>
    <body>
    <?php
        echo 'Hello, World!';
    ?>
    </body>
    </html>
  3. Apache HTTP Server を起動します。

    # systemctl start httpd
  4. hello.php ファイルを実行するには、ブラウザーに以下を指定します。

    http://<hostname>/hello/hello.php

    結果として、"Hello, World!" というテキストを含む Web ページが表示されます。

19.6.2.2. nginx Web サーバーでの PHP の使用

nginx Web サーバーを介して PHP コードを実行できます。

前提条件

手順

  1. nginx モジュールストリームをインストールします。

    # yum module install nginx:stream

    stream は、インストールする nginx のバージョンに置き換えます。

    たとえば、nginx バージョン 1.18 をインストールするには、以下を実行します。

    # yum module install nginx:1.18
  2. nginx サーバーを起動します。

    # systemctl start nginx

    または、使用中のシステムで nginx サーバーを実行している場合は、PHP のインストール後に nginx サービスを再起動します。

    # systemctl restart nginx
  3. php-fpm サービスを起動します。

    # systemctl start php-fpm
  4. 必要に応じて、両方のサービスが起動時に開始できるようにします。

    # systemctl enable php-fpm nginx
  5. PHP の設定に関する情報を取得するには、以下の内容を含む index.php ファイルを /usr/share/nginx/html/ ディレクトリーに作成します。

    # echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
  6. index.php ファイルを実行するには、ブラウザーで以下を指定します。

    http://<hostname>/
  7. オプション: 特定の要件がある場合は、設定を調整します。

    • /etc/nginx/nginx.conf - nginx main configuration
    • /etc/nginx/conf.d/php-fpm.conf - nginx の FPM 設定
    • /etc/php-fpm.conf - FPM の主な設定
    • /etc/php-fpm.d/www.conf - デフォルトの www プール設定

例19.2 "Hello, World!" の実行 nginx サーバーを使用した PHP スクリプト

  1. プロジェクトの hello ディレクトリーを /usr/share/nginx/html/ ディレクトリーに作成します。

    # mkdir hello
  2. 以下の内容で /usr/share/nginx/html/hello/ ディレクトリーに hello.php ファイルを作成します。

    # <!DOCTYPE html>
    <html>
    <head>
    <title>Hello, World! Page</title>
    </head>
    <body>
    <?php
        echo 'Hello, World!';
    ?>
    </body>
    </html>
  3. nginx サーバーを起動します。

    # systemctl start nginx
  4. hello.php ファイルを実行するには、ブラウザーに以下を指定します。

    http://<hostname>/hello/hello.php

    結果として、"Hello, World!" というテキストを含む Web ページが表示されます。

19.6.3. コマンドラインインターフェイスを使用した PHP スクリプトの実行

通常、PHP スクリプトは Web サーバーを使用して実行されますが、コマンドラインインターフェイスを使用して実行することも可能です。

コマンドラインのみを使用して php スクリプトを実行する場合は、php モジュールストリームの 最低限 のプロファイルをインストールします。

PHP スクリプト言語のインストール を参照してください。

前提条件

手順

  1. テキストエディターで filename.php ファイルを作成します。

    filename は、使用するファイル名に置き換えます。

  2. コマンドラインから、作成した filename.php ファイルを実行します。

    # php filename.php

例19.3 "Hello, World!" の実行 コマンドラインインターフェイスを使用した PHP スクリプト

  1. テキストエディターを使用して、以下の内容で hello.php ファイルを作成します。

    <?php
        echo 'Hello, World!';
    ?>
  2. コマンドラインで hello.php ファイルを実行します。

    # php hello.php

    結果として、"Hello, World!" が出力されます。

19.6.4. 関連情報

  • httpd(8) - httpd サービスの man ページ。コマンドラインオプションの全リストが記載されています。
  • httpd.conf (5) - httpd 設定の man ページ。httpd 設定ファイルの構造と場所が説明されています。
  • nginx(8) - nginx Web サーバーの man ページ。コマンドラインオプションの全リストとシグナルのリストが記載されています。
  • php-fpm(8) - PHP FPM の man ページ。コマンドラインオプションおよび設定ファイルの全リストが記載されています。