開発者ドキュメント

Linux、Nginx、MySQL、PHP(LEMPスタック)をUbuntu20.04にインストールする方法[クイックスタート]

序章

このクイックスタートガイドでは、Ubuntu20.04サーバーにLEMPスタックをインストールします。

このチュートリアルのより詳細なバージョンと各ステップの詳細については、 Ubuntu 20.0にLinux、Nginx、MySQL、PHP(LEMPスタック)をインストールする方法を参照してください。

前提条件

このガイドに従うには、Ubuntu20.04サーバーにアクセスする必要があります。 sudo ユーザー。

ステップ1—Nginxをインストールします

パッケージマネージャーのキャッシュを更新してから、次のコマンドでNginxをインストールします。

  1. sudo apt update
  2. sudo apt install nginx

インストールが完了したら、サーバーでHTTPトラフィックを許可するようにファイアウォール設定を調整する必要があります。 次のコマンドを実行して、ポートでの外部アクセスを許可します 80 (HTTP):

  1. sudo ufw allow in "Nginx"

新しいファイアウォールルールを追加すると、WebブラウザからサーバーのパブリックIPアドレスまたはドメイン名にアクセスして、サーバーが稼働しているかどうかをテストできます。 次のようなページが表示されます。

ステップ2—MySQLをインストールする

次に、PHP環境で使用される一般的なデータベース管理システムであるMySQLをインストールします。

繰り返しますが、 apt このソフトウェアを入手してインストールするには:

  1. sudo apt install mysql-server

インストールが完了したら、MySQLにプリインストールされているセキュリティスクリプトを実行することをお勧めします。 次のコマンドを実行して、インタラクティブスクリプトを開始します。

  1. sudo mysql_secure_installation

これにより、設定するかどうかを尋ねられます VALIDATE PASSWORD PLUGIN. 答え Y はい、または有効にせずに続行するための他の何か。 「はい」と答えると、パスワード検証のレベルを選択するように求められます。

次に、サーバーはMySQL rootユーザーのパスワードを選択して確認するように求めます。 MySQLルートユーザーのデフォルトの認証方法ではパスワードの使用は不要ですが、パスワードが設定されている場合でも、追加の安全対策としてここで強力なパスワードを定義する必要があります。

残りの質問については、を押してください Y とヒット ENTER 各プロンプトでキーを押します。

注:この記事の執筆時点では、ネイティブMySQLPHPライブラリ mysqlnd はサポートしていません caching_sha2_authentication、MySQL8のデフォルトの認証方法。 そのため、MySQL 8でPHPアプリケーションのデータベースユーザーを作成するときは、それらが使用するように構成されていることを確認する必要があります。 mysql_native_password 代わりは。 その方法については、Ubuntu20.04ガイドの詳細なLEMPのステップ6を参照してください。

ステップ3—PHPをインストールする

をインストールするには php-fpmphp-mysql パッケージ、実行:

  1. sudo apt install php-fpm php-mysql

ステップ4—PHP用にNginxを構成する

このガイドでは、 your_domain というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。

Ubuntu 20.04では、Nginxではデフォルトで1つのサーバーブロックが有効になっており、次のディレクトリからドキュメントを提供するように構成されています。 /var/www/html. これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は管理が難しくなる可能性があります。 変更する代わりに /var/www/html、内にディレクトリ構造を作成します /var/www your_domain Webサイトの場合、 /var/www/html クライアント要求が他のサイトと一致しない場合に提供されるデフォルトのディレクトリとして配置されます。

次のように、your_domainのルートWebディレクトリを作成します。

  1. sudo mkdir /var/www/your_domain

次に、現在のシステムユーザーを参照する$USER環境変数を使用してディレクトリの所有権を割り当てます。

  1. sudo chown -R $USER:$USER /var/www/your_domain

次に、Nginxの新しい構成ファイルを開きます sites-available 好みのコマンドラインエディタを使用してディレクトリを作成します。 ここでは、 nano:

  1. sudo nano /etc/nginx/sites-available/your_domain

これにより、新しい空白のファイルが作成されます。 次の必要最低限の構成で貼り付けます。

/ etc / nginx / sites-available / your_domain
server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

}


編集が終わったら、ファイルを保存して閉じます。 使用している場合 nano、次のように入力してください CTRL+X その後 yENTER 確認するために。

Nginxから構成ファイルにリンクして構成をアクティブ化します sites-enabled ディレクトリ:

  1. sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

これにより、次にリロードされるときに構成を使用するようにNginxに指示されます。 次のように入力して、構成の構文エラーをテストできます。

  1. sudo nginx -t

エラーが報告された場合は、構成ファイルに戻って内容を確認してから続行してください。

準備ができたら、Nginxをリロードして変更を適用します。

  1. sudo systemctl reload nginx

新しいWebサイトはアクティブになりましたが、Webルート /var/www/your_domain まだ空です。 作成する index.html 新しいサーバーブロックが期待どおりに機能することをテストできるように、その場所にファイルします。

  1. nano /var/www/your_domain/index.html

このファイルには次のコンテンツを含めます。

/var/www/your_domain/index.html
<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

次に、ブラウザに移動して、サーバーのドメイン名またはIPアドレスにアクセスします。 server_name サーバーブロック構成ファイルのディレクティブ:

http://server_domain_or_IP

次のようなページが表示されます。

ステップ5—NginxでPHPをテストする

次に、PHPテストスクリプトを作成して、NginxがPHPファイルのリクエストを処理および処理できることを確認します。

名前の付いた新しいファイルを作成します info.php カスタムWebルートフォルダ内:

  1. nano /var/www/your_domain/info.php

これにより、空のファイルが開きます。 ファイル内に次のコンテンツを追加します。

/var/www/your_domain/info.php
<?php
phpinfo();

終了したら、ファイルを保存して閉じます。

これで、Nginx構成ファイルで設定したドメイン名またはパブリックIPアドレスにアクセスし、続いてWebブラウザーでこのページにアクセスできます。 /info.php:

http://server_domain_or_IP/info.php

サーバーに関する詳細情報を含むWebページが表示されます。

そのページでPHPサーバーに関する関連情報を確認した後、PHP環境とUbuntuサーバーに関する機密情報が含まれているため、作成したファイルを削除することをお勧めします。 使用できます rm そのファイルを削除するには:

  1. sudo rm /var/www/your_domain/info.php

このチュートリアルに関連するより詳細なガイドへのリンクは次のとおりです。

モバイルバージョンを終了