もっと詳しく

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

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

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

前提条件

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

ステップ1:初期化を設定する

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

sudo apt update
sudo apt upgrade

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

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

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

sudo apt install nginx

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

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

これで、Nginxを使用してUncomplicated Firewall(UFW)を設定し、デフォルトのWebポートでパブリックアクセスを許可できます。 HTTPHTTPS

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を使用しない場合は、NginxHTTPプロファイルのみを有効にする必要があります。

次に、NginxFullを有効にします。

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)

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

手順2で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では、MySQL8はデフォルトでJammyJellyfishリポジトリに含まれているため、 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を入力します。

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

パスワード検証プラグインを設定すると、スクリプトに新しいパスワードの強度が表示されます。 タイプ y パスワードを確認します。

次に、匿名ユーザーを削除し、rootユーザーのローカルマシンへのアクセスを制限し、テストデータベースを削除し、特権テーブルを再読み込みするように求められます。 あなたは答えるべきです y すべての質問に。

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

デフォルトでは、Ubuntu22.04に最新のPHP8.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を構成する

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

Nginxを使用したPHP8.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’sEncryptSSLをインストールする

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

sudo apt install python3-certbot-nginx

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

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

このコマンドは、Free 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’sEncryptSSLを使用してUbuntu22.04にLEMPスタックをインストールする方法を学習しました。

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

The post Ubuntu22.04にLEMPStackNginx、MySQL、PHPをインストールする方法 appeared first on Gamingsym Japan.