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

Ubuntu 20.04にPHPとNginx(LEMP)をインストールしてセットアップする方法

PHPは、Web開発を対象とした汎用スクリプト言語です。これは、Webで人気のあるプログラミング言語の1つです。 WordPressなどの人気のあるツールはphpを使用してコーディングされています。 Facebookのような大企業もphpを多用しています。

Nginxは、リバースプロキシ、ロードバランサー、メールプロキシ、HTTPキャッシュとしても使用できるWebサーバーです。これは、最大のパフォーマンスと安定性を実現するように設計されたWebサーバーとして始まりました。 Nginxは、リソースの使用率が軽量で、最小限のハードウェアで簡単に拡張できるため、リリース以来人気が高まっています。 Nginxは静的コンテンツをすばやく提供することに優れており、動的リクエストをそれらの目的により適した他のソフトウェアに渡すように設計されています。

関連コンテンツ

  • OpenSUSE Leap 15.3にPHPとNginx(LEMP)をインストールしてセットアップする方法
  • Rocky Linux /Centos8にApachePHP7.4(LAMP)スタックをインストールする方法
  • Debian 11にPHPとNginx(LEMP)をインストールしてセットアップする方法
  • Debian 11にPHPとApache(LAMPスタック)をインストールしてセットアップする方法

目次

  1. サーバーが最新であることを確認する
  2. Ubuntu20.04へのPHPのインストール
  3. Ubuntu20.04へのNginxのインストール
  4. Ubuntu20.04へのphp-fpmのインストール
  5. 単純なサイトの作成と仮想ホストの構成
  6. 構成のテスト

1。サーバーが最新であることを確認する

先に進む前に、サーバーが最新であることを確認することをお勧めします。これを実現するには、これらのコマンドを使用してください

sudo apt update
sudo apt upgrade -y

2。 Ubuntu20.04へのPHPのインストール

PHPは、デフォルトのUbuntu20.04リポジトリで使用できます。このブログを書いている時点でのPHPの最新バージョンはPHP7.4です。

次のコマンドを使用して、PHPといくつかの一般的なパッケージをインストールします。

sudo apt install -y \
    php \
    php-common \
    php-cli

インストールされているPHPのバージョンを確認してください

$ apt-cache policy php
php:
  Installed: 2:7.4+75
  Candidate: 2:7.4+75
  Version table:
 *** 2:7.4+75 500
        500 http://us-west-2.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages
        100 /var/lib/dpkg/status

次のコマンドを使用して、インストールされているphpのバージョンを確認します。

$ php -v
PHP 7.4.3 (cli) (built: Nov 25 2021 23:16:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

3。 Ubuntu20.04へのNginxのインストール

PHPコンテンツを提供するためにNginxを使用します。 Nginxは、安定した高性能Webサーバーであり、リソースの消費量が非常に少ないため、PHP-FPMに最適です。 Nginxには、イベントに基づいてはるかにスケーラブルな非同期アーキテクチャがあります。

NginxはデフォルトのUbuntuリポジトリで利用できます。次のコマンドを使用してインストールします:

sudo apt install -y nginx

インストールされているnginxを確認します

$ apt-cache policy nginx
nginx:
  Installed: 1.18.0-0ubuntu1.2
  Candidate: 1.18.0-0ubuntu1.2
  Version table:
 *** 1.18.0-0ubuntu1.2 500
        500 http://us-west-2.ec2.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.17.10-0ubuntu1 500
        500 http://us-west-2.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages

4。 Ubuntu20.04へのPHPFPMのインストール

PHP-FPM(FastCGI Process Managerの頭字語)は、非常に人気のある代替PHP(Hypertext Processor)FastCGI実装です。 PHP-FPMは、PHPFastCGIの最も一般的な代替実装です。トラフィックの多いWebサイトに非常に役立つ追加機能があります。 PHP-FPMでNginxを使用すると、メモリ消費レベルでのパフォーマンスが向上します。

PHP-FPMを使用する場合、PHPは個別のサービスとして実行されます。このPHPバージョンを言語インタープリターとして使用することにより、要求はTCP/IPソケットを介して処理されます。 Nginx WebサーバーがHTTPリクエストのみを処理し、PHP-FPMがPHPコードを解釈するようにします。 2つの別々のサービスがあるという事実は、効率を高めるための鍵です。

次のコマンドを使用してphp-fpmをインストールします:

sudo apt install -y php-fpm

サービスはデフォルトで開始されます。次のコマンドを使用してステータスを確認します:

$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-12-14 20:52:23 UTC; 9s ago
       Docs: man:php-fpm7.4(8)
    Process: 40390 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/po>
   Main PID: 40387 (php-fpm7.4)
     Status: "Ready to handle connections"
      Tasks: 3 (limit: 4631)
     Memory: 6.7M
     CGroup: /system.slice/php7.4-fpm.service
             ├─40387 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─40388 php-fpm: pool www
             └─40389 php-fpm: pool www

Dec 14 20:52:23 ip-10-2-40-248 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Dec 14 20:52:23 ip-10-2-40-248 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

起動時にphp-fpmを有効にするには、次のコマンドを使用します:

sudo systemctl status php7.4-fpm

5。簡単なサイトの作成と仮想ホストの構成

Nginxを使用すると、仮想ホストを使用して複数のサイトにサービスを提供できます。仮想ホストの概念により、1つのシステムまたはWebサーバー上に複数のWebサイトを配置できます。サーバーは、ホスト名によって区別されます。 Webサイトへの訪問者は、ホスト名またはIPアドレスによって正しい仮想ホストにルーティングされます。仮想ホスティングにより、1台のサーバーを共有する企業はそれぞれ独自のドメイン名を持つことができます。

この例では、仮想ホストにドメインsite1.citizix.comを使用しますが、選択したドメインを自由に使用できます。使用するドメインのDNSは、サーバーのIPアドレスを指すようにすでに構成されている必要があることに注意してください。確認:

dig -t A site1.citizix.com

ディレクトリの作成とサンプルコンテンツの追加

nginxのデフォルトページは、/ var / www/htmlのコンテンツを提供するデフォルトの仮想ホストとして構成されています。 / var / wwwディレクトリにサイトのディレクトリを作成することをお勧めします。これは、そこからサービスを提供するためのベストプラクティスだからです。

次のコマンドを使用して、サイトのディレクトリを作成しましょう。

sudo mkdir /var/www/site1.citizix.com

簡単なindex.phpを作成しましょう 当サイトから提供するページ。次のコマンドを使用しない場合、これを機能させるにはvimをインストールする必要があります:

sudo apt install -y vim

ファイルを編集します:

sudo vim /var/www/site1.citizix.com/index.php

ファイルにコンテンツを追加します:

<?php phpinfo(); ?>

仮想ホスト(サーバーブロック)の作成

Nginxサーバーブロックを使用して、構成の詳細をカプセル化し、単一のサーバーで複数のドメインをホストできます。サイト(site1.citizix.com)の仮想ホストを作成します。

Nginx仮想ホストの構成は、ディレクトリ/etc/nginx/conf.d/に保存されます 。私たちのサイトの構成を作成しましょう:

sudo vim /etc/nginx/conf.d/site1.citizix.com.conf

次のコンテンツを追加します

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com.log;
    error_log  /var/log/nginx/site1.citizix.com.log;

    root /var/www/site1.citizix.com;
    index index.php;

    if ($host !~* ^(site1.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

構成を適用するためにnginxおよびphp-fpmサービスを再起動しましょう

sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx

6。構成のテスト

構成をテストするには、ブラウザを開き、設定したドメインを読み込みます。私の場合はhttp://site1.citizix.comです。 PHP情報ページが表示されます。

DNS設定をまだ構成していない場合、または単にサイトを公開したくない場合は、コンピューターのhostsファイルを変更できます。これを行うには、ローカルコンピューターのCLIで次のコマンドを使用します

sudo vim /etc/hosts

次に、実際のサーバーのIPアドレスに続けて、構成しているドメイン名を追加します。例:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

これで、ファイルを保存して、Webブラウザ内からアクセスできるようになります。

結論

Nginx仮想ホストまたはserver ブロックは、同じオリジンサーバーにWebサイトを追加するための優れた方法です。サイトの特定のニーズに合わせて仮想ホスト構成ファイルを変更し始めると、特定のサイトの構成の可能性はほぼ無限に広がります。

このガイドでは、Ubuntu20.04でphpコンテンツを提供するように仮想ホストを設定する方法を学びました。


Ubuntu
  1. Debian 11にPHPとNginx(LEMP)をインストールしてセットアップする方法

  2. Ubuntu 20.04にPHPとApache(LAMPスタック)をインストールしてセットアップする方法

  3. Ubuntu18.04にLEMPをインストールする方法

  1. Ubuntu20.04にmysql8をインストールしてセットアップする方法

  2. Rocky Linux / Alma Linux 8にPHPとNginx(LEMP)をインストールしてセットアップする方法

  3. Ubuntu 22.04 に LEMP スタック Nginx、MySQL、PHP をインストールする方法

  1. Ubuntu18.04または20.04にPHP7.4および8.0をインストールする方法

  2. UbuntuにOpenLiteSpeedとPHPをインストールする方法

  3. OpenSUSE Leap 15.3にPHPとNginx(LEMP)をインストールしてセットアップする方法