デジタルオーシャンでLEMP 1-Clickインストールを使用する方法
はじめに
LEMPスタックは、特定のソフトウェアグループを使用してサーバー上でWebアプリケーションをホストするソリューションスタックです。この用語は、エンジン-X(Nginx)Webサーバーを搭載したLinuxオペレーティングシステムを表す頭字語です。サイトのデータはMySQLデータベースに保存され、動的コンテンツはPHPで処理されます。
このチュートリアルでは、Silicon CloudのLEMPスタックがプリインストールされたvServerを立ち上げる方法をご案内します。Silicon CloudのLEMP 1-Clickアプリを使用します。また、サーバー攻撃の軽減に役立つFail2ban、メール送信用のPostfix、安全なHTTPS接続のためのTLS/SSL証明書の管理に役立つCertbotなど、便利なツールも含まれています。vServerの作成後、LEMPスタックの他のユースケースについてもご案内します。この1-Click vServerは標準のUbuntu 20.04 vServerをベースにしているため、このガイドを完了した後にvServer上でLEMPチュートリアルのいずれかをお使いいただけます。
1-クリックデプロイメント
このチュートリアルの終わりまでに、次の追加が施されたUbuntu 20.04ドロップレットを手に入れることができます。
- Nginx (version 1.17.10) is a popular open-source web server. It is a lightweight choice that can be used as either a web server or reverse proxy.
- MySQL (version 8.0.21) is a popular open-source database management system. It implements the relational model and uses Structured Query Language (better known as SQL) to manage its data.
- PHP (version 8.0) is a scripting language used in web development for creating dynamic and interactive web pages.
- Fail2ban (version 0.11.1) is a tool used to prevent brute force DDOS attacks through the creation of rules that ban specific IP addresses according to certain behaviors.
- Postfix (version 3.4.10) is a mail transfer agent that can be used to route and deliver email on a Linux system.
- Certbot (version 0.40.0) is a tool for automating the creation of certificates for TLS/SSL encryption for HTTPS traffic. Additionally, it can handle the automatic configuration of web server settings to use HTTPS using these new certificates.
パッケージのインストールに加えて、この1-クリックには以下も含まれています。
- An enabled firewall using UFW, allowing port 80 for HTTP traffic, port 443 for HTTPS traffic, and port 22 for SSH traffic.
- A root password already set for MySQL by running mysql_secure_installation. This information can be found at /root/.digitalocean_password.
ステップ1 – LEMP ドロップレットの作成
最初に、当社のマーケットプレイスで利用可能なLEMP 1-Clickドロップレットを作成してください。これにより、Silicon Cloudのコントロールパネルに移動できます。LEMP 1-ClickアプリからLEMPドロップレットを作成するには、LEMPドロップレットを作成するボタンを押してください。
もしSilicon Cloudのアカウントにログインしていない場合は、ログインする必要があります。アカウントを持っていない場合は、新規登録ができます。
次に、vServersの作成ページに移動します。ここでは、LEMP vServerを作成する前にサーバーの設定をカスタマイズすることができます。最初のvServerの作成方法ガイドを読んで、詳細にすべき選択肢の説明を確認してください。以下には考慮すべきいくつかの重要な設定があります。
イメージを選ぶ
あなたのイメージは、MarketplaceタブでLEMP 42 on Ubuntu 20.04が選択された状態で既に設定されています。
もし選択肢がない場合、LEMPを検索するために検索ボックスを使用してください。
使い方に応じて、デフォルト設定を受け入れるか、設定を調整することができます。通常、以下の変更をおすすめします。
データセンターの地域を選択する
潜在的な遅延を避けるために、ユーザーベースに最も近いデータセンター地域を選択することをおすすめします。一部の地域では複数のデータセンターがありますが、同じ地域のデータセンター(たとえばSFO3とSFO2)には違いはありません。
プランを選ぶ
vServerをLEMPで実行する場合、少なくとも1GBのRAMが推奨されています。
認証方法の選択
SSHキーのオプションは、vServerのパスワードよりも推奨されます。SSHキーによる認証は通常、より安全です。
追加オプションの選択
改善されたメトリクスの監視とアラート機能をvServerに追加すると、vServerのリソース使用状況を時間の経過に沿って追跡することができます。また、自動バックアップの有効化も検討してみてください。既に作成されたvServerに後からバックアップ機能を有効にすることもできます。
ホスト名を選択する
ドロップレットには、自分が覚えやすい名前をつけてください。例えば、「LEMP vServer 1」とか、使用するアプリケーションの名前をつけると良いでしょう。
あなたがすべての選択を終えたら、コントロールパネル画面の下部バーで「ドロップレットの作成」を押してください。ドロップレットが作成されると、そのIPアドレスが表示されます。
このIPアドレスにアクセスすることで、vServerに接続して設定することができます。IPアドレスの上にカーソルを置いてコピーを押すと、それをクリップボードにコピーすることができます。
1クリックマーケットプレイスで作成されたドロップレットは、「はじめに進む」を押すことでアクセスできる追加リソースが付属しています。
これにより、新しいパネルが切り替わります。このパネルでは、1-Clickアプリケーションに関する追加情報を入手できます。概要、vServerの使用を開始するためのさらなる手順、またはコミュニティサイトの関連チュートリアルへのリンクを含みます。さらに、LEMPに関するサポートやその他のリソースにもアクセスできます。
コントロールパネルでドロップレットの設定が完了したら、ターミナルでアクセスできるように進めてください。
ステップ2 – SSHを介してドロップレットにアクセスし、設定を有効にする
LEMPドロップレットを起動したら、SSHを介してvServerに接続する必要があります。これは、コマンドラインからサーバーに接続することを意味します。もしSSHやPuTTYのような端末プログラムを使用したことがない場合は、How To Connect To Your vServer with SSHを参照してください。
準備ができたら、コンピューター上でターミナルを開き、以下のコマンドを使ってvServerのIPアドレスを置き換えながらrootユーザーとしてvServerにSSHログインしてください。
- ssh root@your_server_ip
コントロールパネルでvServerの設定が完了したら、ターミナルでアクセスできるようになります。
ステップ3 – LEMPとの作業
LEMPドロップレットが起動して稼働しているので、LEMPで作業を始めることができます。LEMPが正しく設定されているかを確認し、全体の状態をチェックするには、phpコマンドを使用してください。
- php -i
phpinfo() PHP Version => 8.0.8 System => Linux lemp42onubuntu2004-s-1vcpu-2gb-sfo3-01 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64 Build Date => Nov 26 2022 14:07:36 Build System => Linux Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc/php/8.1/cli Loaded Configuration File => /etc/php/8.1/cli/php.ini . . .
MySQLの自動的に作成されたルートパスワードにアクセスするには、nanoまたは好みのテキストエディタで次のファイルを開くことができます。
- nano /root/.digitalocean_password
root_mysql_pass="your_mysql_password"
パスワードを覚えたら、CTRL + Xキーを押してナノを終了してください。
あなたの1クリックドロプレットは、自動的に/var/www/htmlのルートディレクトリからウェブサイトを提供するために設定されています。このディレクトリ内には、index.htmlという名前のサンプルファイルが提供されています。その内容を確認するためには、お好きなテキストエディタでファイルを開いてください。
- nano /var/www/html/index.html
<html>
<head>
<style>
body {
font-family: ProximaNova;
font-size: 15px;
font-style: normal;
font-stretch: normal;
. . .
レビューが終わったら、ファイルを閉じてください。ブラウザでhttp://your_server_ipに移動して、このファイルを閲覧できます。
次に、LEMPの設定をさらにカスタマイズし、Webサーバーのトラフィックをセキュアにするためのいくつかの方法があります。Nginxでサーバーブロックを作成することでLEMPの設定をカスタマイズすることができます。
Nginxウェブサーバーを使用する際、サーバーブロック(Apacheのバーチャルホストと同様)は構成の詳細をカプセル化し、1つのサーバーから複数のドメインをホストするために使用することができます。Ubuntu 20.04上のNginxには、デフォルトで1つのサーバーブロックが有効になっており、/var/www/htmlのディレクトリからドキュメントを提供するように構成されています。この方法は、単一のサイトには適していますが、複数のサイトをホストする場合は扱いづらくなることがあります。詳細については、「Ubuntu 20.04にNginxをインストールする方法」の「ステップ5 – サーバーブロックの設定」をご覧ください。
Certbotは1-Click vServerと一緒にインストールされていますが、Let’s Encryptを通じて証明書を取得するために実行する必要があります。Let’s Encryptは、無料のTLS/SSL証明書の取得とインストールを容易にする証明書機関(CA)であり、これによりWebサーバーで暗号化されたHTTPSが可能になります。Nginxの証明書を取得およびインストールする全プロセスを自動化するCertbotというソフトウェアクライアントが提供されています。詳細については、当社の「Ubuntu 20.04でLet’s Encryptを使用してNginxをセキュアにする方法」チュートリアルをご覧ください。
ステップ4 – 新しいユーザーの作成と権限やファイアウォールの調整(オプション)
新しいドロップレットには、デフォルトのルートユーザーである1つのユーザーのみが付属しています。LEMPはルートユーザーとして動作することができますが、新しいユーザーをセットアップし、sudoを通じて管理特権を付与するオプションもあります。この他にもセキュリティ上の推奨事項は、Ubuntu 20.04を使用した初期サーバーセットアップのチュートリアルに記載されています。
また、Certbotを使用して証明書を適切に設定している場合、HTTPSを経由したトラフィックのみを許可することも選択できます。1-Click vServerに付属していたルールを削除するために、ufw deleteを使用してください。
- ufw delete allow 80/tcp
現在、あなたのサーバーはHTTPS経由でのみアクセス可能です。
結論
あなたのLEMP 1クリックドロップレットが起動しました。このチュートリアルではLEMPは単一のエンティティとして扱われますが、各コンポーネントは独自の機能と機能性を持っています。各コンポーネントについてもっと学ぶためには、以下のチュートリアルを参考にしてください。
- How To Install Nginx on Ubuntu 20.04
- How To Install MySQL on Ubuntu 20.04
もしLEMPの従来のインストールに興味があるなら、Ubuntu 20.04でLinux、Nginx、MySQL、PHP(LEMPスタック)をインストールする方法について、私たちのチュートリアルを確認してみてください。また、LEMPスタックを基礎とした他のソフトウェアについて学ぶには、Ubuntu 22.04でLaravelを使用したウェブサイトの構築に関するチュートリアルをご覧いただけます。