Linux、Nginx、MySQL、PHP(LEMPスタック)をUbuntu20.04にインストールする方法[クイックスタート]
序章
このクイックスタートガイドでは、Ubuntu20.04サーバーにLEMPスタックをインストールします。
このチュートリアルのより詳細なバージョンと各ステップの詳細については、 Ubuntu 20.0にLinux、Nginx、MySQL、PHP(LEMPスタック)をインストールする方法を参照してください。
前提条件
このガイドに従うには、sudo
ユーザーとしてUbuntu20.04サーバーにアクセスする必要があります。
ステップ1—Nginxをインストールします
パッケージマネージャーのキャッシュを更新してから、次のコマンドでNginxをインストールします。
- sudo apt update
- sudo apt install nginx
インストールが完了したら、サーバーでHTTPトラフィックを許可するようにファイアウォール設定を調整する必要があります。 次のコマンドを実行して、ポート80
(HTTP)での外部アクセスを許可します。
- sudo ufw allow in "Nginx"
新しいファイアウォールルールを追加すると、WebブラウザからサーバーのパブリックIPアドレスまたはドメイン名にアクセスして、サーバーが稼働しているかどうかをテストできます。 次のようなページが表示されます。
ステップ2—MySQLをインストールする
次に、PHP環境で使用される一般的なデータベース管理システムであるMySQLをインストールします。
ここでも、apt
を使用して、このソフトウェアを入手してインストールします。
- sudo apt install mysql-server
インストールが完了したら、MySQLにプリインストールされているセキュリティスクリプトを実行することをお勧めします。 次のコマンドを実行して、インタラクティブスクリプトを開始します。
- sudo mysql_secure_installation
これにより、VALIDATE PASSWORD PLUGIN
を構成するかどうかを尋ねられます。 Y
と答えて「はい」と答えるか、有効にせずに続行するには他の何かを答えてください。 「はい」と答えると、パスワード検証のレベルを選択するように求められます。
次に、サーバーはMySQL rootユーザーのパスワードを選択して確認するように求めます。 MySQLルートユーザーのデフォルトの認証方法ではパスワードの使用は不要ですが、パスワードが設定されている場合でも、追加の安全対策としてここで強力なパスワードを定義する必要があります。
残りの質問については、Y
を押し、各プロンプトでENTER
キーを押してください。
注:この記事の執筆時点では、ネイティブMySQLPHPライブラリmysqlnd
は、MySQL8のデフォルトの認証方法であるcaching_sha2_authentication
をサポートしていません。 。 そのため、MySQL 8でPHPアプリケーションのデータベースユーザーを作成する場合は、代わりにmysql_native_password
を使用するように構成されていることを確認する必要があります。 その方法については、Ubuntu20.04ガイドの詳細なLEMPのステップ6を参照してください。
ステップ3—PHPをインストールする
php-fpm
およびphp-mysql
パッケージをインストールするには、次のコマンドを実行します。
- sudo apt install php-fpm php-mysql
ステップ4—PHP用にNginxを構成する
このガイドでは、 your_domain というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。
Ubuntu 20.04では、Nginxではデフォルトで1つのサーバーブロックが有効になっており、/var/www/html
のディレクトリからドキュメントを提供するように構成されています。 これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は管理が難しくなる可能性があります。 /var/www/html
を変更する代わりに、 your_domain Webサイトの/var/www
内にディレクトリ構造を作成し、/var/www/html
をデフォルトのディレクトリとして残します。クライアントリクエストが他のサイトと一致しない場合に提供されます。
次のように、your_domainのルートWebディレクトリを作成します。
- sudo mkdir /var/www/your_domain
次に、現在のシステムユーザーを参照する$USER環境変数を使用してディレクトリの所有権を割り当てます。
- sudo chown -R $USER:$USER /var/www/your_domain
次に、お好みのコマンドラインエディターを使用して、Nginxのsites-available
ディレクトリにある新しい構成ファイルを開きます。 ここでは、nano
を使用します。
- sudo nano /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
、y
、ENTER
の順に入力して確認できます。
Nginxのsites-enabled
ディレクトリから構成ファイルにリンクして構成をアクティブ化します。
- sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
これにより、次にリロードされるときに構成を使用するようにNginxに指示されます。 次のように入力して、構成の構文エラーをテストできます。
- sudo nginx -t
エラーが報告された場合は、構成ファイルに戻って内容を確認してから続行してください。
準備ができたら、Nginxをリロードして変更を適用します。
- sudo systemctl reload nginx
これで新しいWebサイトがアクティブになりましたが、Webルート/var/www/your_domain
はまだ空です。 その場所にindex.html
ファイルを作成して、新しいサーバーブロックが期待どおりに機能することをテストできるようにします。
- nano /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>
次に、ブラウザに移動して、サーバーブロック構成ファイルのserver_name
ディレクティブにリストされているサーバーのドメイン名またはIPアドレスにアクセスします。
http://server_domain_or_IP
次のようなページが表示されます。
ステップ5—NginxでPHPをテストする
次に、PHPテストスクリプトを作成して、NginxがPHPファイルのリクエストを処理および処理できることを確認します。
カスタムWebルートフォルダ内にinfo.php
という名前の新しいファイルを作成します。
- nano /var/www/your_domain/info.php
これにより、空のファイルが開きます。 ファイル内に次のコンテンツを追加します。
<?php
phpinfo();
終了したら、ファイルを保存して閉じます。
これで、Nginx構成ファイルで設定したドメイン名またはパブリックIPアドレスにアクセスし、続いて/info.php
にアクセスして、Webブラウザーでこのページにアクセスできます。
http://server_domain_or_IP/info.php
サーバーに関する詳細情報を含むWebページが表示されます。
そのページでPHPサーバーに関する関連情報を確認した後、PHP環境とUbuntuサーバーに関する機密情報が含まれているため、作成したファイルを削除することをお勧めします。 rm
を使用して、そのファイルを削除できます。
- sudo rm /var/www/your_domain/info.php
関連チュートリアル
このチュートリアルに関連するより詳細なガイドへのリンクは次のとおりです。