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

Debian 11 に LAMP Apache、MySQL、PHP をインストールする方法

LAMP Apache、MySQL、PHP を Debian 11 にインストールする方法。このガイドでは、Apache2、MySQL 8.0、および PHP 8.1 をインストールする方法を学習します。

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

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

LAMP をインストールするための前提条件

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

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

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

sudo apt update
sudo apt upgrade

wget パッケージをインストールします。

sudo apt install wget

セットアップを更新したら、LAMP スタックのインストールを開始できます。

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

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

sudo apt install apache2

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

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

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

sudo ufw app list

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

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

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

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

sudo uff allow OpenSSH
sudo ufw allow 'Apache Full'

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

sudo ufw status

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

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

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

Apache がインストールされると、自動的に開始され、すでに稼働しています。

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

sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Drop-In: /lib/systemd/system/apache2.service.d
            └─apache2-systemd.conf
    Active: active (running) since Tue 2022-02-02 10:29:51 UTC; 5min ago
  Main PID: 10617 (apache2)
     Tasks: 55 (limit: 667)
    CGroup: /system.slice/apache2.service
            ├─10617 /usr/sbin/apache2 -k start
            ├─10619 /usr/sbin/apache2 -k start
            └─10620 /usr/sbin/apache2 -k start
 Feb 02 10:29:51 apache systemd[1]: Starting The Apache HTTP Server…
 Feb 02 10:29:51 apache systemd[1]: Started The Apache HTTP Server.

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

ステップ 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 libapache2-mod-php 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 を構成します。 ファイル。

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

sudo nano /etc/php/8.1/apache2/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 設定を変更したら、変更を有効にするために Apache を再起動する必要があります。

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

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

sudo a2dissite 000-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/apache2/sites-available/domainname.conf

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

<VirtualHost *:80>
     ServerAdmin [email protected]
     ServerName domainname.com
     ServerAlias www.domainname.com

     DocumentRoot /var/www/html/domainname/public

     <Directory /var/www/html/domainname/public>
         Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 
 </VirtualHost>

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

sudo a2ensite 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 --apache --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com

適切なオプションを選択し、Enter を押します

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

ステップ 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’s Encrypt を使用して Debian 11 に LAMP スタックをインストールする方法を学びました。

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


Linux
  1. CentOS / RHEL 7にApache、MySQL、PHP(LAMP)をインストールする方法

  2. Debian 11にLAMP(Apache、MySQL、PHP)をインストールする方法

  3. Debian8にLAMPをインストールする方法

  1. Ubuntu 16.04 LTSにApache、MySQL、PHP(LAMP)をインストールする方法

  2. Debian 9にLAMP(Linux、Apache、MySQL、PHP)をインストールする方法

  3. Ubuntu 22.04 に LAMP Apache、MySQL、PHP をインストールする方法

  1. Debian9にLAMPサーバーをインストールする方法

  2. Debian 11 に MySQL をインストールする方法

  3. Debian 11 に LAMP Apache、MySQL、PHP をインストールする方法