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

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

Ubuntu 22.04 に LEMP スタック Nginx、MySQL、PHP をインストールする方法。このガイドでは、Nginx、MySQL 8.0、および PHP 8.1 のインストール方法を学習します。

また、いくつかの一般的な PHP 拡張機能をインストールし、PHP 構成を調整します。最後に、Let's Encrypt SSL でセットアップを保護し、HTTPS リダイレクトを構成します。

この設定は Google クラウドでテストされているため、AWS、Azure、VPS、Ubuntu 22.04 を実行する専用サーバーなど、すべてのクラウド ホスティング サービスで動作します。

前提条件

  • サーバーへの root アクセスまたは sudo 権限を持つユーザー
  • Let’sEncrypt SSL をインストールするためのサーバー IP を指すドメイン

ステップ 1:セットアップの初期化

次のコマンドを使用して、利用可能な最新バージョンにパッケージを更新することから始めます。

sudo apt update
sudo apt upgrade

セットアップを更新したら、セットアップを開始できます。

ステップ 2:Nignx をインストールする

次のコマンドを使用して Nginx をインストールします。

sudo apt install nginx

nginx がインストールされます および必要なすべての依存関係。

ステップ 3:ファイアウォールをセットアップする

Nginx で複雑でないファイアウォール (UFW) をセットアップして、HTTP の既定の Web ポートでパブリック アクセスを許可できるようになりました。 と HTTPS

sudo ufw app list

リストされたすべてのアプリケーションが表示されます。

Output
Available applications:
   Nginx Full
   Nignx HTTP
   Nginx HTTPS
   OpenSSH
  • Nginx HTTP :このプロファイルはポート 80 を開きます (通常の暗号化されていない Web トラフィック)
  • Nginx フル :このプロファイルは両方のポート 80 を開きます (通常の暗号化されていない Web トラフィック) およびポート 443 (TLS/SSL 暗号化トラフィック)
  • Nginx HTTPS :このプロファイルは、ポート 443 のみを開きます (TLS/SSL 暗号化トラフィック)
  • OpenSSH :このプロファイルはポート 22 を開きます SSH アクセス用

SSL を使用しない場合は、Nginx HTTP プロファイルのみを有効にする必要があります。

次に、Nginx Full を有効にします。

sudo uff allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

このコマンドを使用すると、UFW のステータスを表示できます。

sudo ufw status

次のような出力が表示されます。

Output
Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 OpenSSH                    ALLOW       Anywhere                  
 Nginx Full (v6)            ALLOW       Anywhere (v6)             
 OpenSSH (v6)               ALLOW       Anywhere (v6)

ステップ:4 Nginx のインストールを確認する

ステップ 2 で Nginx をインストールしたので、Nginx は自動的に開始され、すでに稼働しているはずです。

Nginx のすべてのプロセスは systemctl で管理されます 指図。次のコマンドで Nginx のステータスを確認してください。

sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 05:36:49 UTC; 44s ago
       Docs: man:nginx(8)
    Process: 10272 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCC>
    Process: 10273 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 10274 (nginx)
      Tasks: 3 (limit: 1151)
     Memory: 5.3M
        CPU: 35ms
     CGroup: /system.slice/nginx.service

これで、Nignx がインストールされ、ファイアウォールが構成されました。

ステップ 5:MySQL をインストールする

Ubuntu 22.04 では、デフォルトで MySQL 8 が Jammy Jellyfish リポジトリに含まれているため、apt install を使用して簡単にインストールできます。 コマンド。

sudo apt install mysql-server

インストールが完了すると、MySQL サービスが自動的に開始されます。 MySQL サーバーが実行されていることを確認するには、次のように入力します。

sudo service mysql status

出力は、サービスが有効で実行中であることを示しているはずです:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 00:38:45 UTC; 11s ago
    Process: 13836 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, statu>
   Main PID: 13844 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1151)
     Memory: 351.4M
        CPU: 1.043s
     CGroup: /system.slice/mysql.service
             └─13844 /usr/sbin/mysqld

以下のコマンドを使用して、MySQL のバージョンを確認してください。

sudo mysql -V
Output
mysql  Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))

ステップ 6:MySQL を保護する

MySQL のインストールには mysql_secure_installation という名前のスクリプトが付属しています これにより、MySQL サーバーのセキュリティを簡単に改善できます。

sudo mysql_secure_installation

VALIDATE PASSWORD PLUGIN を設定するよう求められます これは、MySQL ユーザー パスワードの強度をテストし、セキュリティを向上させるために使用されます。

yを押してください パスワード検証プラグインまたはその他のキーを設定して次のステップに進む場合。

パスワード検証ポリシーには、低、中、強の 3 つのレベルがあります。

強力なパスワード検証のために 2 を入力してください。

次のプロンプトで、MySQL root ユーザーのパスワードを設定するよう求められます。

Validate Password プラグインをセットアップすると、スクリプトは新しいパスワードの強度を表示します。 y と入力します パスワードを確認します。

次に、匿名ユーザーを削除し、ローカル マシンへのルート ユーザー アクセスを制限し、テスト データベースを削除し、特権テーブルをリロードするよう求められます。 y と答える必要があります すべての質問に。

ステップ 7:PHP をインストールする

デフォルトでは、Ubuntu 22.04 には最新の PHP 8.1 リポジトリが追加されています。したがって、次のコマンドを使用して PHP をインストールできます。

sudo apt install php8.1-fpm php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y

PHP をインストールしたら、次のコマンドを使用してバージョンを確認できます。

php -v
Output
PHP 8.1.5 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies

ステップ 8:PHP を構成する

php.ini のいくつかの値を変更して、Web アプリケーション用の PHP を構成します。 ファイル。

Nginx を使用する PHP 8.1 の場合、php.ini 場所は次のディレクトリになります。

sudo nano /etc/php/8.1/fpm/php.ini

F6 をヒット エディター内で検索し、パフォーマンスを向上させるために次の値を更新します。

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

PHP 設定を変更したら、変更を有効にするために PHP-FPM を再起動する必要があります。

sudo service php8.1-fpm restart

ステップ 9:Nginx を構成する

デフォルトの Nginx 構成を無効にします。

sudo rm -rf /etc/nginx/sites-enabled/default
sudo rm -rf /etc/nginx/sites-available/default

Web サイト ディレクトリを作成します。

sudo mkdir -p /var/www/html/domainname/public

正しい権限を設定してください。

sudo chmod -R 755 /var/www/html/domainname
sudo chown -R www-data:www-data /var/www/html/domainname

新しいサーバー ブロック構成を作成します。

sudo nano /etc/nginx/sites-available/domainname.conf

次の構成を新しいファイルに貼り付けます。

server {
    listen 80;
    listen [::]:80;

    server_name yourdomainname.com www.yourdomainname.com;

    root /var/www/html/domainname/public;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

新しい構成を有効にします。

sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

ステップ 10:Let’s Encrypt SSL をインストールする

HTTPS は、サーバー (インスタンス) とクライアント (Web ブラウザー) 間の安全な通信のためのプロトコルです。無料の SSL 証明書を提供する Let’s Encrypt の導入により、HTTPS はすべての人に採用され、視聴者にも信頼をもたらします。

sudo apt install python3-certbot-nginx

これで、Ubuntu 22.04 用の Let’s Encrypt によって Certbot がインストールされました。このコマンドを実行して、証明書を受け取ります。

sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com

このコマンドは、無料の SSL をインストールし、HTTPS へのリダイレクトを構成し、Nginx サーバーを再起動します。

ステップ 11:SSL 証明書の更新

Let’s Encrypt が提供する証明書は 90 日間のみ有効であるため、頻繁に更新する必要があります。それでは、次のコマンドを使用して更新機能をテストしましょう。

sudo certbot renew --dry-run

このコマンドは、証明書の有効期限をテストし、自動更新機能を構成します。

ステップ:12:セットアップをテストする

適切な手順を実行したら、Web ディレクトリに新しいテスト PHP ファイルを作成できます。

sudo nano /var/www/html/domainname/public/info.php

以下のコードをファイル内に貼り付けます。

<?php phpinfo();

ファイルを保存します。

info.php でドメイン名を確認してください。 URL (domainname.com/info.php ).

ドメインが HTTPS にリダイレクトされ、PHP 情報の詳細が表示されます。

完了したトレーニング コースで Linux 管理のキャリアを強化し、夢の仕事に就きましょう。

結論

これで、Let’sEncrypt SSL を使用して LEMP スタックを Ubuntu 22.04 にインストールする方法を学びました。

御時間ありがとうございます。問題やフィードバックがある場合は、下にコメントを残してください。


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

  2. Debian 11 に LEMP Stack Nginx、MySQL、PHP をインストールする方法

  3. Ubuntu 18.04 に LEMP スタックをインストールする方法

  1. CentOS 7にLEMPスタック(Nginx、MySQL、PHP v7)をインストールする方法

  2. Ubuntu 18.04にPHPとMySQL(LEMPスタック)を使用してNginxをインストールする方法

  3. Ubuntu 20.04 LTSにPHPとMySQL(LEMPスタック)を使用してNginxをインストールする方法

  1. Debian9にPHP+MySQL(LEMP)を使用してNginxをインストールする方法

  2. Debian 11にNginx、MariaDB、PHP(LEMPスタック)をインストールする方法

  3. Linux、Nginx、MySQL、PHP(LEMPスタック)をUbuntu18.04にインストールする方法