ウェブサイト検索

CentOS 8にNginxとPHP-FPMをインストールおよび設定する方法


CentOS 8にNginxとPHP-FPMをインストールおよび設定する方法

このチュートリアルはこれらのOSバージョンのために存在します

  • CentOS 8
  • CentOS 7.6
  • CentOS 7
  • CentOS 6.4
  • CentOS 6.3
  • CentOS 6.2

このページで

  1. 前提条件
  2. 始めに
  3. Nginxウェブサーバーをインストールする
  4. PHPとPHP-FPMをインストールする
  5. Nginxのインデックスページを作成する
  6. PHP-FPMでNginxを設定する
  7. PHP-FPMサポート付きのNginxをテストする
  8. 結論

Nginxは無料のオープンソースであり、世界で最も強力なウェブサーバーの一つです。主に高負荷で高トラフィックのウェブサイトに使用されます。Nginxは、その安定性、シンプルな設定、および低リソース消費で知られています。Nginxはウェブサーバーおよびリバースプロキシとして使用することができます。

FPMはFastCGIプロセスマネージャーの略で、高トラフィックのウェブサイト向けに使用されるPHPの代替FastCGI実装です。一般的にウェブサーバーと一緒にPHPページを提供するために使用されます。PHP-FPMは、PHPを実行する他の方法と比較して、より少ないメモリとCPUを使用します。PHP-FPMは、マルチユーザーのPHP環境において従来のCGIベースの方法よりも高速です。また、PHP-FPMは同時に複数のPHPバージョンを実行することも可能です。

このチュートリアルでは、CentOS 8 における PHP-FPM サポート付きの Nginx のインストール方法を学びます。

前提条件

  • CentOS 8を実行しているサーバー。
  • サーバーにルートパスワードが設定されています。

始めに

デフォルトでは、SELinuxはCentOS 8サーバーで有効です。ですので、最初にそれを無効にする必要があります。

これは、/etc/selinux/configファイルを編集することで行えます:

nano /etc/selinux/config

次の変更を行ってください:

SELINUX=disabled

ファイルを保存して閉じます。次に、変更を適用するためにサーバーを再起動します。

Nginxウェブサーバーをインストールする

まず、次のコマンドを使ってNginxウェブサーバーをインストールします。

yum install nginx -y

Nginxがインストールされたら、次のコマンドを使用してNginxサービスを開始し、ブート時に自動的に開始するように設定します:

systemctl start nginx
systemctl enable nginx

完了したら、次のステップに進むことができます。

PHPとPHP-FPMをインストールする

次に、以下のコマンドを実行してPHPとPHP-FPMをインストールします。

yum install php php-cli php-common php-fpm -y

すべてのパッケージがインストールされたら、PHP-FPMサービスを開始し、システム再起動後に自動的に開始するように有効にします。

systemctl start php-fpm
systemctl enable php-fpm

次のコマンドを使ってPHP-FPMサービスのステータスを確認することもできます:

systemctl status php-fpm

次の出力を得るべきです:

? php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago
 Main PID: 1475 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 5060)
   Memory: 28.5M
   CGroup: /system.slice/php-fpm.service
           ??1475 php-fpm: master process (/etc/php-fpm.conf)
           ??1478 php-fpm: pool www
           ??1479 php-fpm: pool www
           ??1480 php-fpm: pool www
           ??1481 php-fpm: pool www
           ??1482 php-fpm: pool www

Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.

Nginxのインデックスページを作成する

次に、NginxがPHP-FPMを使用しているかどうかをテストするために、サンプルのinfo.phpページを作成する必要があります。

以下のように、Nginxのデフォルト文書ルートディレクトリ内にinfo.phpを作成できます:

nano /var/www/html/info.php

次の行を追加してください:

<?php
    phpinfo();
?>

作業が完了したら、ファイルを保存して閉じてください。

次に、info.phpファイルの所有権をnginxに変更します:

chown -R nginx: /var/www/html/info.php/

PHP-FPMでNginxを設定する

次に、Nginxの仮想ホスト設定ファイルを作成し、PHP-FPMサポートを有効にする必要があります。

次のコマンドで作成できます:

nano /etc/nginx/conf.d/example.conf

次の行を追加してください:

server {
    listen 80;
    server_name example.com;
    root /var/www/html/;
    index info.php;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    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;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

ファイルを保存して閉じます。そして、次のコマンドを使用してNginxの構文エラーをテストします。

nginx -t

次に、Nginxの仮想ホストファイルを有効にし、設定を適用するためにNginxサービスを再起動します:

systemctl restart nginx

PHP-FPMサポート付きのNginxをテストする

今、ウェブブラウザを開いて、URLhttp://example.comを入力してください。次のページにリダイレクトされます:

上のページでは、PHP-FPMがNginxウェブサーバーと共に読み込まれていることがわかるはずです。

結論

おめでとうございます!あなたはCentOS 8サーバーにNginxとPHP-FPMサポートを正常にインストールしました。これで、異なるバージョンのPHPを使用する複数のウェブサイトをホストするためにPHP-FPMを使用できるようになりました。

関連記事: