はろー。 は、はろー。まとめノート書いてますよ。

PHP7.3のインストールおよびNginx環境下でのPHP実行

PHP7.3のインストールおよびNginx環境下でのPHP実行 アイキャッチ

AWS EC2インスタンスにインストールしたNginx環境下にプログラミング言語「PHP」をインストールして環境を整えます。

構築環境

ここで使用する環境について。

  • RHEL8(AWS EC2)
  • Nginx 1.14
  • PHP 7.3

PHPについて

PHPについては自宅サーバ作業第6回目を参照ください。

【自宅サーバ作業第6回】CentOSでLAMP環境を構築する(PHPのインストール)

Remi経由でPHPインストール

RemiリポジトリよりPHP7.3のパッケージをインストールしてきます。ただし、RemiリポジトリをインストールするためのEPELリポジトリの用意が必要になってきますので、事前にEPELリポジトリをインストールします。

EPELリポジトリのインストールは次のコマンドを入力します。

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

EPELリポジトリの用意ができましたので、次はRemiリポジトリをインストールします。

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

インストールすると利用可能なリポジトリリストに「remi-php73.repo」という名前が表示されるようになります。

$ ls /etc/yum.repos.d/
:
:
remi-php73.repo
:

PHPのインストール

以下のパッケージをインストールしていきますが、ここではPHPをCGIとして動作させるため「php-fpm」と呼ばれるパッケージをインストールする点に注意が必要です。

  • PHP7.3のパッケージ→php73-php
  • PHP7.3で日本語を扱うパッケージ→php73-php-mbstring
  • PHP7.3でデータベースを扱うパッケージ→php73-php-pdo
  • PHP7.3でCGI起動を扱うパッケージ→php73-php-fpm

 

以下のコマンドを入力するとphp73-phpパッケージをインストールする過程で、上記項目パッケージも同時にインストールできるようです。インストールされなかった場合には、パッケージ名を指定してインストールしてあげましょう。

$ sudo dnf install --enablerepo=remi-php73 php73-php

また、パッケージがインストールできたか確認する場合は、

$ sudo dnf list installed | grep php73

などとして、希望のパッケージがインストールできたか確認できます。

PHPバージョン確認

インストールしたPHPのバージョンを調べる際は以下のコマンドを入力します。

$ php73 -v

PHP 7.3.9 (CLI) (built: Aug 27 2019 22:52:39) ( NTS )」などといったメッセージが返ってきたら無事インストール成功です。

PHP-FPMの設定

Apache環境下で動作していたPHPはApacheの拡張機能という扱いで動作していたため、ApacheとPHPをインストールしたらすぐに(?)PHPを実行できましたが、Nginx環境下でPHPを実行する場合、CGIとして単体で起動させることになります。

そのため、PHP-FPM(FastCGI Process Manager)サービス関連ファイルの設定を行い、Nginxとの紐付けを行います。以下はそれら関連ファイルの設定についてです。

PHP-FPMにNginxを認識させる

www.confの書き換え

$ sudo vi /etc/opt/remi/php73/php-fpm.d/www.conf
# 55行目あたりnginxを追加
listen.acl_users = apache,nginx

NginxにPHPプログラム実行の紐付けを行う

Nginx設定ファイル(/etc/nginx/nginx.conf)を開き以下のinclude文で指定されたディレクトリ内にPHPファイルをプログラムとして実行するための紐付け用の設定ファイルを作成します。

※PHPのインストール環境によってはすでに作成されている場合もあります。

$ sudo vi /etc/nginx/nginx.conf
# 36行目あたり
include /etc/nginx/conf.d/*.conf;

# 45行目あたり
include /etc/nginx/default.d/*.conf;

php-fpm.confの作成

$ sudo vi /etc/nginx/conf.d/php-fpm.conf
# PHP-FPM FastCGI server
# network or unix domain socket configuration

upstream php-fpm {
        # www.confの40行目あたりlisten項目を指定
        server unix:/var/opt/remi/php73/run/php-fpm/www.sock;
}

php.confの作成

$ sudo vi /etc/nginx/default.d/php.conf
# pass the PHP scripts to FastCGI server
#
# See conf.d/php-fpm.conf for socket configuration:q
#
index index.php index.html index.htm;

location ~ \.(php|phar)(/.*)?$ {
    fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;

    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO $fastcgi_path_info;
    fastcgi_pass   php-fpm;
}

FastCGIパラメーター例は以下を参照ください。

 

PHP-FPMの起動

以下のコマンドを入力してPHP-FPMサービスを起動します。

$ sudo systemctl start php73-php-fpm

Nginx再起動

加えて、Nginx設定ファイルを編集したのでNginxを再起動します。

$ sudo systemctl restart nginx

PHP動作確認

php情報を出力するファイルを作成してPHPの動作確認をします。

$ sudo vi /usr/share/nginx/html/phpinfo.php
<?php echo phpinfo(); ?>

以下のような画面が表示されたら動作確認完了です。

Nginx環境 Remi経由 PHPインストール ブラウザ確認

さいごに

設定ファイルを探すときは次のコマンドを適宜活用すると良さそうです。以下はPHP7.3のPHP.ini設定ファイルの場所を出力するコマンドです。

$ php73 -i | grep php.ini

Remi経由で別バージョンのPHP7.3をインストールしたためか、設定ファイルの設置場所が変わっています。例えば、php.ini設定ファイルがetcディレクトリ直下に無いなど。

コマンドを利用すればわざわざ設定ファイルを探す手間が省けてラクですね。

スポンサーリンク
back to top