18.6. PHP スクリプト言語の使用
Hypertext Preprocessor (PHP) はサーバー側のスクリプトに主に使用する汎用スクリプト言語で、Web サーバーを使用して PHP コードを実行できるようにします。
RHEL 8 では、PHP スクリプト言語は php
モジュールにより提供されます。これは、複数のストリーム (バージョン) で利用できます。
ユースケースによっては、選択したモジュールストリームの特定のプロファイルをインストールできます。
-
common
: Web サーバーを使用したサーバー側のスクリプトのデフォルトプロファイル。これには、広範に使用される拡張機能が複数含まれています。 -
minimal
: このプロファイルは、Web サーバーを使用せずに PHP でのスクリプト用のコマンドラインインターフェイスのみをインストールします。 -
devel
: このプロファイルには、共通
プロファイルのパッケージと開発用の追加パッケージが含まれます。
18.6.1. PHP スクリプト言語のインストール
選択したバージョンの php
モジュールをインストールできます。
手順
デフォルトのプロファイルで
php
モジュールストリームをインストールするには、以下を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install php:stream
# yum module install php:stream
stream は、インストールする PHP のバージョンに置き換えます。
たとえば、PHP 8.0 をインストールするには、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install php:8.0
# yum module install php:8.0
デフォルトの
共通
プロファイルはphp-fpm
パッケージもインストールし、Apache HTTP Server
またはnginx
で使用する PHP を事前設定します。php
モジュールストリームの特定のプロファイルをインストールするには、以下を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install php:stream/profile
# yum module install php:stream/profile
stream は、インストールする プロファイル の名前に置き換えます。
たとえば、Web サーバーを使用しない PHP 8.0 をインストールするには、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install php:8.0/minimal
# yum module install php:8.0/minimal
関連情報
- RHEL 8 で利用可能な以前のバージョンの PHP からアップグレードする場合は、後続のストリームへの切り替え を参照してください。
- RHEL 8 モジュールおよびストリームの詳細は、ユーザー空間コンポーネントのインストール、管理、および削除 を参照してください。
18.6.2. Web サーバーでの PHP スクリプト言語の使用
18.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 コードを実行できます。
前提条件
PHP スクリプト言語がシステムにインストールされている。
PHP スクリプト言語のインストール を参照してください。
手順
httpd
モジュールをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install httpd:2.4
# yum module install httpd:2.4
Apache HTTP Server
を起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start httpd
# systemctl start httpd
または、
Apache HTTP Server
をシステムで実行している場合は、PHP のインストール後にhttpd
サービスを再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart httpd
# systemctl restart httpd
php-fpm
サービスを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start php-fpm
# systemctl start php-fpm
必要に応じて、両方のサービスが起動時に開始できるようにします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl enable php-fpm httpd
# systemctl enable php-fpm httpd
PHP の設定に関する情報を取得するには、以下の内容を含む
index.php
ファイルを/var/www/html/
ディレクトリーに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo '<?php phpinfo(); ?>' > /var/www/html/index.php
# echo '<?php phpinfo(); ?>' > /var/www/html/index.php
index.php
ファイルを実行するには、ブラウザーで以下を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://<hostname>/
http://<hostname>/
オプション: 特定の要件がある場合は、設定を調整します。
-
/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
プール設定
-
例18.1 "Hello, World!" の実行Apache HTTP Server を使用した PHP スクリプト
/var/www/html/
ディレクトリーにプロジェクト用のhello
ディレクトリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir hello
# mkdir hello
以下の内容を含む
/var/www/html/hello/
ディレクトリーにhello.php
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <!DOCTYPE html>
# <!DOCTYPE html> <html> <head> <title>Hello, World! Page</title> </head> <body> <?php echo 'Hello, World!'; ?> </body> </html>
Apache HTTP Server
を起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start httpd
# systemctl start httpd
hello.php
ファイルを実行するには、ブラウザーに以下を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://<hostname>/hello/hello.php
http://<hostname>/hello/hello.php
結果として、"Hello, World!" というテキストを含む Web ページが表示されます。
18.6.2.2. nginx Web サーバーでの PHP の使用
nginx
Web サーバーを介して PHP コードを実行できます。
前提条件
PHP スクリプト言語がシステムにインストールされている。
PHP スクリプト言語のインストール を参照してください。
手順
nginx
モジュールストリームをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install nginx:stream
# yum module install nginx:stream
stream は、インストールする
nginx
のバージョンに置き換えます。たとえば、
nginx
バージョン 1.18 をインストールするには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum module install nginx:1.18
# yum module install nginx:1.18
nginx
サーバーを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start nginx
# systemctl start nginx
または、使用中のシステムで
nginx
サーバーを実行している場合は、PHP のインストール後にnginx
サービスを再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart nginx
# systemctl restart nginx
php-fpm
サービスを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start php-fpm
# systemctl start php-fpm
必要に応じて、両方のサービスが起動時に開始できるようにします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl enable php-fpm nginx
# systemctl enable php-fpm nginx
PHP の設定に関する情報を取得するには、以下の内容を含む
index.php
ファイルを/usr/share/nginx/html/
ディレクトリーに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
# echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
index.php
ファイルを実行するには、ブラウザーで以下を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://<hostname>/
http://<hostname>/
オプション: 特定の要件がある場合は、設定を調整します。
-
/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
プール設定
-
例18.2 "Hello, World!" の実行nginx サーバーを使用した PHP スクリプト
プロジェクトの
hello
ディレクトリーを/usr/share/nginx/html/
ディレクトリーに作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir hello
# mkdir hello
以下の内容で
/usr/share/nginx/html/hello/
ディレクトリーにhello.php
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <!DOCTYPE html>
# <!DOCTYPE html> <html> <head> <title>Hello, World! Page</title> </head> <body> <?php echo 'Hello, World!'; ?> </body> </html>
nginx
サーバーを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start nginx
# systemctl start nginx
hello.php
ファイルを実行するには、ブラウザーに以下を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow http://<hostname>/hello/hello.php
http://<hostname>/hello/hello.php
結果として、"Hello, World!" というテキストを含む Web ページが表示されます。
関連情報
18.6.3. コマンドラインを使用した PHP スクリプトの実行
PHP スクリプトは通常、Web サーバーを使用して実行されますが、コマンドラインを使用して実行することもできます。
コマンドラインのみを使用して php
スクリプトを実行する場合は、php
モジュールストリームの 最低限
のプロファイルをインストールします。
PHP スクリプト言語のインストール を参照してください。
前提条件
PHP スクリプト言語がシステムにインストールされている。
PHP スクリプト言語のインストール を参照してください。
手順
テキストエディターで
filename.php
ファイルを作成します。filename は、使用するファイル名に置き換えます。
コマンドラインから、作成した
filename.php
ファイルを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow php filename.php
# php filename.php
例18.3 "Hello, World!" の実行コマンドラインを使用した PHP スクリプト
テキストエディターを使用して、以下の内容で
hello.php
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <?php echo 'Hello, World!'; ?>
<?php echo 'Hello, World!'; ?>
コマンドラインで
hello.php
ファイルを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow php hello.php
# php hello.php
結果として、"Hello, World!" が出力されます。
18.6.4. 関連情報
-
httpd(8)
-httpd
サービスの man ページ。コマンドラインオプションの全リストが記載されています。 -
httpd.conf(5)
—httpd
設定の man ページ。httpd
設定ファイルの構造と場所が説明されています。 -
nginx(8)
-nginx
Web サーバーの man ページ。コマンドラインオプションの全リストとシグナルのリストが記載されています。 -
php-fpm(8)
- PHP FPM の man ページ。コマンドラインオプションおよび設定ファイルの全リストが記載されています。