Debian 11 に LEMP スタック Nginx、MySQL、PHP をインストールする方法。このガイドでは、Nginx、MySQL 8.0、および PHP 8.1 をインストールする方法を学習します。
また、いくつかの一般的な PHP 拡張機能をインストールし、PHP 構成を調整します。最後に、Let's Encrypt SSL でセットアップを保護し、HTTPS リダイレクトを構成します。
この設定は Google クラウドでテストされているため、AWS、Azure、VPS、Debian 11 を実行する専用サーバーなど、すべてのクラウド ホスティング サービスで動作します。
前提条件
- サーバーまたは sudo ユーザーへの root アクセス
- Let’sEncrypt SSL をインストールするためのサーバー IP を指すドメイン
ステップ 1:セットアップの初期化
次のコマンドを使用して、利用可能な最新バージョンにパッケージを更新することから始めます。
sudo apt update sudo apt upgrade
wget パッケージをインストールします。
sudo apt install wget
セットアップを更新したら、セットアップを開始できます。
ステップ 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'
このコマンドを使用すると、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 のインストールを確認する
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 Thu 2022-02-03 03:13:00 UTC; 6h ago Docs: man:nginx(8) Process: 11261 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code> Process: 11262 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, > Main PID: 11263 (nginx) Tasks: 3 (limit: 8622)
これで、Nignx がインストールされ、ファイアウォールが構成されました。
ステップ 5:MySQL をインストールする
システムに MySQL APT リポジトリを追加するには、リポジトリのダウンロード ページに移動し、次のコマンドを使用して最新のリリース パッケージをダウンロードします。
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
リリース パッケージをインストールします。
sudo apt install ./mysql-apt-config_0.8.22-1_all.deb
MySQL バージョン 8.0 をインストールします。 Tab キーを押して [OK] を選択し、Enter キーを押します (上の画像を参照)。
これで MySQL をインストールできます。
sudo apt update 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 Wed 2022-02-02 06:12:30 UTC; 17s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Main PID: 101929 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 1148) Memory: 369.3M CPU: 805ms CGroup: /system.slice/mysql.service └─101929 /usr/sbin/mysqld Feb 02 06:12:29 demo systemd[1]: Starting MySQL Community Server... Feb 02 06:12:30 demo systemd[1]: Started MySQL Community Server.
ステップ 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 をインストールする
PHP 8.1 用の SURY PPA を追加します
sudo apt -y install lsb-release apt-transport-https ca-certificates sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
これで、PPA をサーバー パッケージに追加できます。
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
パッケージを更新し、PHP 8.1 をインストールします
sudo apt update sudo apt install php php8.1-fpm php8.1-mysql 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-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl -y
PHP をインストールしたら、次のコマンドを使用してバージョンを確認できます。
php -v
ステップ 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 はすべての人に採用され、視聴者にも信頼をもたらします。
ここでは、Certbot をインストールして、Snap を使用して Let’sEncrypt SSL をインストールします。
sudo apt update sudo apt install snapd -y sudo snap install core sudo snap refresh core
Certbot ツールをインストールします。
sudo snap install --classic certbot
Certbot をコマンドとして実行できるように構成します。
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Let’s Encrypt for Debian 11 をインストールするための Certbot をインストールしました。
次のコマンドを実行して、証明書をインストールします。
sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com
適切なオプションを選択し、Enter
を押します
このコマンドは、無料の 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 を使用して Debian 11 に LEMP スタックをインストールする方法を学びました。
御時間ありがとうございます。問題やフィードバックがある場合は、下にコメントを残してください。