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 にインストールする方法を学びました。
御時間ありがとうございます。問題やフィードバックがある場合は、下にコメントを残してください。