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

Debian10バスターサーバー/デスクトップにLEMPスタックをインストールする方法

このチュートリアルでは、Debian 10 BusterにNginx、MariaDB、PHP7.3(LEMPスタック)をインストールする方法を紹介します。ソフトウェアスタックは、一緒にバンドルされたソフトウェアツールのセットです。 LEMPはLの略です inux、 Nginx M ariaDB / M ySQLとP HP、これらはすべてオープンソースであり、無料で使用できます。これは、動的なWebサイトとWebアプリケーションを強化する非常に一般的なソフトウェアスタックです。 Linuxはオペレーティングシステムです。 NginxはWebサーバーです。 MariaDB / MySQLはデータベースサーバーであり、PHPは動的Webページの生成を担当するサーバー側のスクリプト言語です。

4つのコンポーネントはすべて無料でオープンソースです。ただし、MySQLは現在Oracleによって所有されており、Oracleがそれをクローズドソース製品に変える可能性があるため、MySQLの代わりにMariaDBを選択します。

Debian10バスターにLEMPスタックをインストールするための前提条件

このチュートリアルに従うには、ローカルコンピュータまたはリモートサーバーで実行されているDebian10OSが必要です。

VPS(仮想プライベートサーバー)をお探しの場合は、この特別なリンクからVultrにアカウントを登録して、50ドルの無料クレジットを取得できます(新規ユーザーのみ)。また、ドメイン名を使用してLEMPスタックを設定する必要がある場合は、NameCheapからドメイン名を購入することをお勧めします。これは、価格が低く、whoisのプライバシー保護が一生無料になるためです。

Debianにソフトウェアをインストールするときは、root権限が必要であることに注意してください。 sudoを追加できます コマンドの先頭で、またはsu -を使用します rootユーザーに切り替えるコマンド。

ステップ1:ソフトウェアパッケージを更新する

LEMPスタックをインストールする前に、リポジトリとソフトウェアパッケージを更新することをお勧めします。 Debian10OSで次のコマンドを実行します。

sudo apt update

sudo apt upgrade

ステップ2:Debian10にNginxWebサーバーをインストールする

Nginxは高性能のWebサーバーであり、最近非常に人気があります。また、リバースプロキシおよびキャッシングサーバーとしても使用できます。次のコマンドを入力して、NginxWebサーバーをインストールします。

sudo apt install nginx

インストール後、Nginxが自動的に起動します。 systemctlでステータスを確認してください 。

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: en
   Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago
     Docs: man:nginx(8)
 Main PID: 19713 (nginx)
    Tasks: 2 (limit: 1149)
   Memory: 4.6M
   CGroup: /system.slice/nginx.service
           ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─19714 nginx: worker process

ヒント:上記のコマンドがすぐに終了しない場合は、Qキーを押してターミナルウィンドウの制御を取り戻すことができます。

実行されていない場合は、systemctlを使用して開始します。

sudo systemctl start nginx

起動時にNginxを自動的に起動できるようにすることもお勧めします。

sudo systemctl enable nginx

Nginxのバージョンを確認してください:

sudo nginx -v

出力:

nginx version: nginx/1.14.2

次に、ブラウザのアドレスバーにDebian10サーバーのパブリックIPアドレスを入力します。デフォルトの「Welcometonginx」Webページが表示されます。これは、NginxWebサーバーが正しく実行されていることを意味します。ローカルのDebian10コンピュータにLEMPをインストールする場合は、127.0.0.1と入力する必要があります。 またはlocalhost ブラウザのアドレスバーに表示されます。

接続が拒否されるか、完了に失敗した場合は、ファイアウォールがTCPポート80への着信要求を妨げている可能性があります。iptablesファイアウォールを使用している場合は、次のコマンドを実行してTCPポート80を開く必要があります。

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

UFWファイアウォールを使用している場合は、このコマンドを実行してTCPポート80を開きます。

sudo ufw allow http

次に、www-dataを設定する必要があります (Nginxユーザー)ドキュメントルート(Webルートとも呼ばれます)の所有者として。デフォルトでは、rootユーザーが所有します。 (Nginxはデフォルトで/usr/share/nginx/html/を使用することに注意してください Webルートとして、ApacheWebサーバーは/var/www/html/を使用します 私たちが根付くように。)

sudo chown www-data:www-data /usr/share/nginx/html/ -R

ステップ3:MariaDBデータベースサーバーをDebian10にインストールする

MariaDBは、MySQLのドロップイン代替品です。次のコマンドを入力して、Debian10にインストールします。

sudo apt install mariadb-server mariadb-client

インストール後、MariaDBサーバーは自動的に開始されます。 systemctlを使用します ステータスを確認します。

systemctl status mariadb

出力:

● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: 
   Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20669 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1149)
   Memory: 77.7M
   CGroup: /system.slice/mariadb.service
           └─20669 /usr/sbin/mysqld

実行されていない場合は、次のコマンドで開始します:

sudo systemctl start mariadb

起動時にMariaDBを自動的に起動できるようにするには、

を実行します。
sudo systemctl enable mariadb

次に、インストール後のセキュリティスクリプトを実行します。

sudo mysql_secure_installation

MariaDBのrootパスワードの入力を求められたら、rootパスワードがまだ設定されていないため、Enterキーを押します。次に、 yと入力します MariaDBサーバーのルートパスワードを設定します。

次に、Enterキーを押すだけで、残りのすべての質問に答えることができます。これにより、匿名ユーザーが削除され、リモートルートログインが無効になり、テストデータベースが削除されます。このステップは、MariaDBデータベースセキュリティの基本的な要件です。 (文字Yに注意してください 大文字で表示されます。これは、デフォルトの回答であることを意味します。)

デフォルトでは、DebianのMaraiDBパッケージはunix_socketを使用してユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用してMariaDBコンソールにログインできることを意味します。したがって、次のコマンドを実行して、MariaDBのrootパスワードを指定せずにログインできます。

sudo mariadb -u root

または

sudo mysql -u root

終了するには、

を実行します
exit;

MariaDBサーバーのバージョン情報を確認してください。

mariadb --version

出力:

mariadb Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

ステップ4:Debian10にPHP7.3をインストールする

この記事の執筆時点では、PHP7.3はPHPの最新の安定バージョンであり、以前のバージョンに比べてパフォーマンスがわずかに向上しています。次のコマンドを入力して、Debian10リポジトリからPHP7.3といくつかの一般的なPHP拡張機能をインストールします。

sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
>

PHPのバージョン情報を確認してください。

php --version

出力:

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

次に、php7.3-fpmを起動します。

sudo systemctl start php7.3-fpm

起動時に自動起動を有効にします。

sudo systemctl enable php7.3-fpm

ステータスの確認:

systemctl status php7.3-fpm

ステップ5:Nginxサーバーブロックを作成する

Nginxサーバーブロックは、Apacheの仮想ホストのようなものです。 PHPコードを実行するには不十分であり、変更すると混乱するため、デフォルトのサーバーブロックは使用しません。したがって、defaultを削除します sites-enabledのシンボリックリンク 次のコマンドを実行してディレクトリを作成します。 (/etc/nginx/sites-available/defaultとして引き続き利用できます 。)

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

次に、 /etc/nginx/conf.d/の下に新しいサーバーブロックファイルを作成します Nanoなどのコマンドラインテキストエディタを備えたディレクトリ。

sudo nano /etc/nginx/conf.d/default.conf

次のテキストをファイルに貼り付けます。次のスニペットは、NginxがIPv4ポート80とIPv6ポート80でキャッチオールサーバー名でリッスンするようにします。

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

ファイルを保存して閉じます。 (Nanoテキストエディタでファイルを保存するには、Ctrl+Oを押します。 、Enterキーを押して確認します。終了するには、Ctrl+Xを押します 。)次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、Nginxをリロードします。

sudo systemctl reload nginx

ステップ6:PHPをテストする

NginxサーバーでPHPスクリプトをテストするには、info.phpを作成する必要があります Webルートディレクトリ内のファイル。

sudo nano /usr/share/nginx/html/info.php

次のPHPコードをファイルに貼り付けます。

<?php phpinfo(); ?>

ファイルを保存して閉じます。

ブラウザのアドレスバーに、server-ip-address/info.phpと入力します。 。 sever-ip-addressを置き換えます 実際のIPで。ローカルコンピューターでこのチュートリアルに従う場合は、「127.0.0.1/info.php」と入力します。 またはlocalhost/info.php

サーバーのPHP情報が表示されます。これは、PHPスクリプトがNginxWebサーバーで正しく実行できることを意味します。 ZendOPcacheが有効になっていることがわかります。

Nginx自動再起動

何らかの理由でNginxプロセスが強制終了された場合は、次のコマンドを実行して再起動する必要があります。

sudo systemctl restart nginx

このコマンドを手動で入力する代わりに、nginx.serviceを編集することで、Nginxを自動的に再起動させることができます。 systemdサービスユニット。デフォルトのsystemdサービス構成を上書きするために、別のディレクトリを作成します。

sudo mkdir -p /etc/systemd/system/nginx.service.d/

次に、このディレクトリの下にファイルを作成します。

sudo nano /etc/systemd/system/nginx.service.d/restart.conf

ファイルに次の行を追加します。これにより、障害が検出されてから5秒後にNginxが自動的に再起動します。

[Service]
Restart=always
RestartSec=5s

ファイルを保存して閉じます。次に、systemdをリロードします。

sudo systemctl daemon-reload

これが機能するかどうかを確認するには、次のコマンドでNginxを強制終了します:

sudo pkill nginx

次に、Nginxのステータスを確認します。 Nginxが自動的に再起動します。

systemctl status nginx

Debian
  1. MySQLサーバーをDebian10Busterにインストールする方法

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

  3. Debian 10 バスターに LEMP スタックをインストールする方法

  1. Debian 10BusterLinuxデスクトップにSpotifyをインストールする方法

  2. Debian10BusterでLEMPサーバーをセットアップする方法

  3. Debian 10にXrdpサーバー(リモートデスクトップ)をインストールする方法

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

  2. Debian10にLEMPスタックをインストールする方法

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