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

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

このチュートリアルでは、LEMPスタックをインストールする方法を説明します。 (Nginx、MariaDB、およびPHP7.4)Ubuntu20.04。ソフトウェアスタックは、一緒にバンドルされたソフトウェアツールのセットです。 LEMPは、Linux、Nginx(Engine-X)、MariaDB / MySQL、およびPHPの略で、これらはすべてオープンソースであり、無料で使用できます。これは、動的なWebサイトおよびWebアプリケーションを強化する最も一般的なソフトウェアスタックです。 Linuxはオペレーティングシステムです。 NginxはWebサーバーです。 MariaDB / MySQLはデータベースサーバーであり、PHPは動的Webページの生成を担当するサーバー側のスクリプト言語です。

前提条件

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

VPS(仮想プライベートサーバー)をお探しの場合は、この特別なリンクを介してDigitalOceanにアカウントを登録すると、50ドルの無料クレジットを取得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクからVultrにアカウントを登録して、50ドルの無料クレジットを取得できます(新規ユーザーのみ)。

また、ドメイン名を使用してLEMPスタックを設定する必要がある場合は、NameCheapからドメイン名を購入することをお勧めします。これは、価格が低く、whoisのプライバシー保護が一生無料になるためです。

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

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

sudo apt update

sudo apt upgrade

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

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

sudo apt install nginx

インストール後、次のコマンドを実行することで、起動時にNginxが自動起動できるようにすることができます。

sudo systemctl enable nginx

次に、次のコマンドでNginxを起動します:

sudo systemctl start 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 2020-04-10 14:11:43 UTC; 3s ago
       Docs: man:nginx(8)
    Process: 8533 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 8545 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 8549 (nginx)
      Tasks: 3 (limit: 9451)
     Memory: 3.9M
     CGroup: /system.slice/nginx.service
             ├─8549 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─8550 nginx: worker process
             └─8551 nginx: worker process

有効 」は、起動時の自動起動が有効になっていて、Nginxが実行されていることを示しています。また、出力からNginxが使用しているRAMの量を確認できます。上記のコマンドを実行してもすぐに終了しない場合。 「q」を押す必要があります 」を終了します。

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

nginx -v

出力:

nginx version: nginx/1.17.9 (Ubuntu)

次に、ブラウザのアドレスバーにUbuntu20.04サーバーのパブリックIPアドレスを入力します。 「WelcometoNginx」Webページが表示されます。これは、NginxWebサーバーが正しく実行されていることを意味します。ローカルのUbuntu20.04コンピューターに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ユーザーが所有しています。

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

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

MariaDBは、MySQLのドロップイン代替品です。これは、OracleがMySQLをクローズドソース製品に変える可能性があることを懸念しているMySQLチームの元メンバーによって開発されました。次のコマンドを入力して、Ubuntu20.04にMariaDBをインストールします。

sudo apt install mariadb-server mariadb-client

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

systemctl status mariadb

出力:

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 9161 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 9451)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─9161 /usr/sbin/mysqld

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

sudo systemctl start mariadb

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

を実行します。
sudo systemctl enable mariadb

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

sudo mysql_secure_installation

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

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

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

sudo mariadb -u root

終了するには、

を実行します
exit;

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

mariadb --version

ご覧のとおり、MariaDB10.3.22をインストールしました。

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

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

PHP7.4はUbuntu20.04リポジトリに含まれており、PHP7.3よりもパフォーマンスがわずかに向上しています。次のコマンドを入力して、PHP7.4といくつかの一般的な拡張機能をインストールします。

sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

PHP拡張機能は、WordPressのようなコンテンツ管理システム(CMS)に一般的に必要です。たとえば、インストールにphp7.4-xmlがない場合 、その後、WordPressサイトページの一部が空白になる可能性があり、Nginxエラーログで次のようなエラーを見つけることができます:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

これらのPHP拡張機能をインストールすると、CMSがスムーズに実行されます。次に、php7.4-fpmを起動します。

sudo systemctl start php7.4-fpm

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

sudo systemctl enable php7.4-fpm

ステータスの確認:

systemctl status php7.4-fpm

サンプル出力:

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor pr>
     Active: active (running) since Fri 2020-04-10 14:40:26 UTC; 12s ago
       Docs: man:php-fpm7.4(8)
    Process: 21019 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /ru>
   Main PID: 21012 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req>
      Tasks: 3 (limit: 9451)
     Memory: 9.4M
     CGroup: /system.slice/php7.4-fpm.service
             ├─21012 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─21017 php-fpm: pool www
             └─21018 php-fpm: pool www

上記のコマンドを実行してもすぐに終了しない場合。 「q」を押す必要があります 」を終了します。

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

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

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

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

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.4-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 WebサーバーでPHP-FPMをテストするには、info.phpを作成する必要があります。 webrootディレクトリのファイル。

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サーバーで正しく実行できることを意味します。

おめでとうございます!これで、Ubuntu 20.04にNginx、MariaDB、PHP7.4が正常にインストールされました。サーバーのセキュリティのために、info.phpを削除する必要があります ハッカーに見られないように、今すぐファイルしてください。

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

トラブルシューティングのヒント

エラーが発生した場合は、Nginxエラーログ(/var/log/nginx/error.log)を確認できます。 )何が悪いのかを知るために。

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

ファイルに次の行を追加すると、Nginxが自動的に5秒再起動します。 障害が検出された後。 RetartSecのデフォルト値 は100ms 、小さすぎます。 RestartSecの場合、Nginxは「開始リクエストの繰り返しが速すぎる」と文句を言う場合があります 十分な大きさではありません。

[Service]
Restart=always
RestartSec=5s

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

sudo systemctl daemon-reload

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

sudo pkill nginx

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

systemctl status nginx

次のステップ

このチュートリアルがUbuntu20.04LTSにLEMPスタックをインストールするお役に立てば幸いです。 。無料のオープンソースのWebベースのデータベース管理ツールであるphpMyAdminをインストールすることをお勧めします。

  • Ubuntu 20.04 LTSにNginx(LEMP)を使用してphpMyAdminをインストールする方法

LEMPスタックの上にWordPressをインストールして、独自のWebサイトやブログを作成することもできます。

  • Nginx、MariaDB、PHP7.4(LEMP)を使用してUbuntu20.04にWordPressをインストールする

いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、その他のヒントやコツを入手してください。気をつけて🙂


Ubuntu
  1. Ubuntu20.04にNginxをインストールする方法

  2. UbuntuサーバーからUbuntuデスクトップをインストールする方法

  3. Ubuntu16.04にLEMPをインストールする方法

  1. Ubuntu20.04にLEMPスタックをインストールする方法

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

  3. Ubuntu18.04デスクトップまたはサーバーにqBittorrentをインストールする方法

  1. Nginx(LEMPスタック)を使用してUbuntu18.04にNextCloudをインストールします

  2. Ubuntu16.04サーバー/デスクトップにPlexMediaServerをインストールする方法

  3. Nginx(LEMPスタック)を使用してUbuntu20.04にNextCloudをインストールします