GNU/Linux >> Linux の 問題 >  >> Linux

PHP-FPMを介してPHPで動作するようにNginxを構成する方法

このステップバイステップのチュートリアルでは、PHP-FPMを使用してサーバー上でPHPを実行するようにNginxをインストールおよび構成する方法を示します。

Nginx + PHPは、Webサイトの構築に使用できる最も人気のあるソフトウェアグループの1つです。このステップバイステップのチュートリアルでは、PHP-FPMを使用してサーバー上でPHPを実行するようにNginxをインストールおよび構成する方法を示します。

Nginxは、PHP-FPMとの理想的な組み合わせです。優れたパフォーマンスと低リソース消費で認められている安定したウェブサーバーです。

PHP-FPMを使用すると、PHPは分離されたサービスとして実行されます。このPHPバージョンを言語インタープリターとして使用すると、要求はUNIXソケットを介して処理されます。 NginxサーバーはHTTPリクエストのみを処理しますが、PHP-FPMはPHPコードを解釈します。

1。 Nginxのインストール

Ubuntu / Debian

NginxはDebianとUbuntuのデフォルトのリポジトリで利用できるため、適切なパッケージシステムを使用してこれらのリポジトリからインストールできます。

sudo apt install nginx

CentOS / AlmaLinux / Rocky Linux

最新のNginxバージョンを入手するには、CentOS、AlmaLinux、またはRockyLinuxユーザーは最初にEPELリポジトリをインストールする必要があります。

EPEL(Extra Package for Enterprise Linux)は、Fedoraチームによるオープンソースの無料のコミュニティベースのリポジトリプロジェクトであり、RHELベースのLinuxディストリビューションに高品質のアドオンソフトウェアパッケージを提供します。

sudo yum install epel-release

次に、Nginxサーバーをインストールできます。

sudo yum install nginx

Fedora

NginxはデフォルトのFedoraリポジトリで利用可能であり、dnfを使用して直接インストールできます。 パッケージマネージャー。

sudo dnf install nginx

2。 PHP-FPMのインストール

Ubuntu / Debian

UbuntuまたはDebianにPHPをインストールするには、次のコマンドを実行するだけです。

sudo apt install php-fpm

CentOS

CentOSサーバー内でデフォルトで使用可能なPHPバージョンは古くなっています。そのため、PHP 7を入手するには、サードパーティのパッケージリポジトリをインストールする必要があります。

CentOS 7

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

CentOS 8

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

3。 PHP-FPMを使用してPHPを実行するようにNGINXを構成する

NginxとPHPをインストールしたら、PHPリクエストをPHP-FPMに送信するようにNginxを構成できます。

FPMでPHPを実行するには、Nginxサーバーブロック構成ファイルを作成する必要があります。その後、要件に応じて新しいVirtualHostを作成し、新しいVirtualHostを有効にすることができます。

sudo vim /etc/nginx/sites-available/example.com

example.comを置き換えます サイトのドメインまたはIPアドレス、およびroot サイトのルートディレクトリを使用したディレクティブ。

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm;
        server_name example.com;
 
        location / {
            try_files $uri $uri/ =404;
        }
 
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
}

構成ファイルへの変更を保存し、サイト対応ディレクトリへのリンクを作成します。

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

PHPソケットファイルの名前(この場合はphp7.4-fpm.sock)を確認してください )fastcgi_passで指定 ディレクティブは正しいです。

ls -l /var/run/php/
total 4
-rw-r--r-- 1 root     root      5 Dec  1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data  0 Dec  1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root     root     30 Dec  1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock

名前がphp7.4-fpm.sockと異なる場合 、上記のサーバーブロックで、サーバーの現在のブロックに置き換えるだけです。

次に、Nginxサービスを再起動して、変更を再読み込みします。

sudo systemctl restart nginx.service

4。セットアップのテスト

テストPHPファイルを作成して、PHP-FPMが機能し、Nginxと統合されていることを確認します。上記のサーバーブロックでは、サイトは/var/www/htmlから提供されています 、そこでテストファイルを作成します:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

最後に、info.phpにアクセスします Webブラウザから、サイトのドメインまたはサーバーのIPアドレスを使用します。 PHP構成ページが表示されます:

結論

おめでとう! PHP-FPMを介してPHPリクエストを処理するようにNginxを設定しました。

ここから実行できる次のステップがいくつかあります。たとえば、サーバーへの接続が保護されていることを確認する必要があります。しかし、それを行う方法は?

ステップバイステップのチュートリアルに従って、サーバー用の無料のLet'sEncryptSSL証明書を取得してください。


Linux
  1. NginxでオリジンCloudflareSSLを設定する方法

  2. rsyslogを使用してリモートログサーバーを構成するにはどうすればよいですか?

  3. Ubuntu 20.04 で Apache を使用して PHP-FPM をインストールする方法

  1. PleskでPHP-FPMを使用してNginxを有効にする方法

  2. Ubuntu20.04にNginxを使用してPHP7.4をインストールする方法

  3. UbuntuでNginxを使用して複数のPHPバージョンを実行する方法は?

  1. CentOS7にNginxを使用してWordPressをインストールする方法

  2. Ubuntu 16.04にNginx、PHP-FPM、SSLを使用してDrupal8.1をインストールする方法

  3. PHP-FPM を使用して PHP を実行するように Nginx を構成する方法