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

Rocky Linux / Alma Linux 8に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)スタックをインストールする方法
  • Ubuntu 20.04にPHPとApache(LAMPスタック)をインストールしてセットアップする方法
  • Ubuntu 20.04にPHPとNginx(LEMP)をインストールしてセットアップする方法
  • Debian 11にPHPとApache(LAMPスタック)をインストールしてセットアップする方法
  • Debian 11にPHPとNginx(LEMP)をインストールしてセットアップする方法

目次

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

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

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

sudo df update -y

2。 Rocky Linux / AlmaLinux8へのPHPのインストール

phpファイルを提供するには、システムにphpを設定する必要があります。このガイドでは、php7.4をインストールします。

PHP 7.4は、デフォルトのリポジトリではまだ利用できません。レミリポジトリは、php7.4をインストールするのに最適なリポジトリです。 Remiリポジトリは、主にPHPスタック用の無料で安定したYUMリポジトリです。 PHPの最新バージョンのパッケージが含まれています。

CentosサーバーでRemiリポジトリを有効にするには:

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

次のコマンドで、remiリポジトリがインストールされ、有効になっていることを確認します。

$ sudo dnf repolist
repo id                                 repo name
appstream                               CentOS Linux 8 - AppStream
baseos                                  CentOS Linux 8 - BaseOS
epel                                    Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                            Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                  CentOS Linux 8 - Extras
remi-modular                            Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                               Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

リストの一部としてレミリポジトリが表示されます。

リポジトリがインストールされたので、phpを検索してみましょう。次のコマンドを使用します:

$ sudo dnf module list php
Last metadata expiration check: 0:49:30 ago on Wed 22 Dec 2021 04:23:13 AM UTC.
Rocky Linux 8 - AppStream
Name           Stream             Profiles                            Summary
php            7.2 [d]            common [d], devel, minimal          PHP scripting language
php            7.3                common [d], devel, minimal          PHP scripting language
php            7.4                common [d], devel, minimal          PHP scripting language

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name           Stream             Profiles                            Summary
php            remi-7.2           common [d], devel, minimal          PHP scripting language
php            remi-7.3           common [d], devel, minimal          PHP scripting language
php            remi-7.4           common [d], devel, minimal          PHP scripting language
php            remi-8.0           common [d], devel, minimal          PHP scripting language
php            remi-8.1           common [d], devel, minimal          PHP scripting language

リストから。デフォルトは7.2であることがわかります。 dnf install phpを実行する 7.2をインストールします 欲しくない。次のコマンドを使用して7.4を有効にしましょう:

sudo dnf module enable php:remi-7.4

何らかの理由で失敗した場合は、次のコマンドを使用して既存のモジュールをリセットできます。

sudo dnf module reset php

リポジトリが有効になったので、次のコマンドでphpをインストールしましょう:

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

成功したら。次のコマンドでインストールされたバージョンを確認します:

$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

3。 RockyLinuxへのNginxのインストール

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

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

sudo dnf install -y nginx

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

$ rpm -qi nginx
Name        : nginx
Epoch       : 1
Version     : 1.14.1
Release     : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Wed 22 Dec 2021 05:16:08 AM UTC
Group       : System Environment/Daemons
Size        : 1669719
License     : BSD
Signature   : RSA/SHA256, Thu 10 Jun 2021 09:22:38 AM UTC, Key ID 15af5dac6d745a60
Source RPM  : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date  : Thu 10 Jun 2021 09:10:40 AM UTC
Build Host  : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://nginx.org/
Summary     : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low

デフォルトでは、サービスは開始されません。 Nginxを起動するには、次のコマンドを使用します:

sudo systemctl start nginx

次のコマンドを使用してステータスを確認します:

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 45s ago
  Process: 118235 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 118228 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 118226 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 118237 (nginx)
    Tasks: 3 (limit: 23167)
   Memory: 5.0M
   CGroup: /system.slice/nginx.service
           ├─118237 nginx: master process /usr/sbin/nginx
           ├─118238 nginx: worker process
           └─118239 nginx: worker process

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.

起動時にサービスを有効にするには、次のsystemdコマンドを使用します:

sudo systemctl enable nginx

4。 Rocky Linux / AlmaLinux8への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 dnf install -y php-fpm

デフォルトでは、サービスは開始されません。開始するには、次のsystemdコマンドを使用します:

sudo systemctl start php-fpm

次のコマンドを使用して、サービスステータスをチェックし、実行されていることを確認します。

$ sudo 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 Wed 2021-12-22 05:17:32 UTC; 3min 5s ago
 Main PID: 118227 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 23167)
   Memory: 22.9M
   CGroup: /system.slice/php-fpm.service
           ├─118227 php-fpm: master process (/etc/php-fpm.conf)
           ├─118230 php-fpm: pool www
           ├─118231 php-fpm: pool www
           ├─118232 php-fpm: pool www
           ├─118233 php-fpm: pool www
           └─118234 php-fpm: pool www

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.

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 dnf 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 php-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サイトを追加するための優れた方法です。サイトの特定のニーズに合わせて仮想ホスト構成ファイルを変更し始めると、特定のサイトの構成の可能性はほぼ無限に広がります。

このガイドでは、Rocky Linux /AlmaLinuxまたはRHELベースのシステムでphpコンテンツを提供するように仮想ホストを設定する方法を学びました。


Rocky Linux
  1. Rocky Linux 8にLEMP(Nginx、MariaDB、PHP)を使用してWordPressをインストールする方法は?

  2. Rocky Linux / Alma Linux /CentOS8にErlangをインストールする方法

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

  1. Rocky Linux / AlmaLinux8でNginxとPHP-FPMを使用してLaravelBagistoをセットアップする方法

  2. Rocky Linux / AlmaLinux8にMemcachedをインストールして構成する方法

  3. Rocky Linux / AlmaLinux8にFFmpegをインストールする方法

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

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

  3. AlmaLinuxとRockyLinuxにPHP8をインストールする方法