Debian 8 に LEMP をインストールして設定する方法 (Jessie)
Linux システムをセットアップする最も一般的な理由の 1 つは、Web サイトをホストする目的です。 NetCraft.com が 2016 年 2 月に実施した、世界で最もアクセス数の多い Web サイト 100 万件に関する調査によると、 そのうちのおよそ15.60% がNginx で実行されています。
何らかの動的コンテンツが提供されている可能性が高く、Web サイトのデータベース バックエンドも提供されている可能性が高いため、管理者はLEMP サーバーをセットアップできます。求職者にとっても雇用者にとっても非常に有益です。
このチュートリアルでは、Linux サーバー (特にDebian 8 Jessie) をLEMP サーバーとして機能させるためのインストールと構成の基本を説明します。
LEMPサーバーとは何ですか?
素晴らしい質問です!コンピューティングの世界のほとんどのものと同様に、LEMP はLinux、Nginx、MySQL、PHP の頭字語です。
この頭字語は、Web サーバー上のソフトウェア コレクションを参照するためによく使用されます。このチュートリアルでは、まず LEMP、特に MySQL と PHP のセットアップについて説明します。
システムの構成側面に分ける前に、Nginx について知っておくことが重要です。
Nginxとは何ですか?
Nginx は 2002 年に誕生し、コンピューティングの世界では Web サイトでの同時接続数が 10,000 以上になる可能性が非常に現実的であると認識し始め、その結果、この問題に対処するために Nginx がゼロから作成されました。
MySQL と PHP のインストールと構成
1. この最初のセクションでは、MySQL およびPHP サーバーとしての Debian について説明します。 LEMP サーバーの Linux 部分は、Debian をインストールすることですでに完了しているはずです。ただし、Debian のインストール方法に関するガイドが必要な場合は、TecMint に関する次の記事をお読みください。
- Debian 8 ジェシーのインストール
Debian の準備が完了したら、残りの必要なソフトウェアをインストールするプロセスは、「apt」メタパッケージャーを使用した 1 つの簡単なコマンドで完了できます。
apt-get install mysql-server-5.5 php5-mysql php5
システム ハードウェアとインターネット接続によっては、このプロセスに時間がかかる場合があります。この記事の執筆時点では、すべてのアップデートを適用した Debian Jessie の新規インストールには、リポジトリからのアーカイブの約 70MB が必要です (完了時にサーバーが何を行うかを考えると、それほど悪くはありません)。インストールプロセス中に、システムはユーザーに SQL root ユーザーのパスワードを設定するように求めるプロンプトを表示する場合があります。これは実際の root ユーザーのパスワードとは異なるため、セキュリティ上の理由から、おそらく異なるままにしておく必要があります。
2. apt がすべてのソフトウェアのインストールを完了すると、基本サービスが起動して実行されます。ただし、ここで停止すると非常に短いチュートリアルになってしまいます。それでは、MySQL から始めてインストールされる各ソフトウェアの構成をもう少し詳しく見てみましょう。
3. MySQL のインストール後、デフォルトのインストールで SQL サーバーの基本的なハウスキーピングを実行することが推奨されることがよくあります。これは、mysql_secure_installation
ユーティリティを使用して簡単に実行できます。
このコマンドはコマンド ラインから実行するだけで、匿名ユーザー、データベースのテスト、SQL データベースへのリモート root ユーザー ログイン機能の削除などをユーザーに求めるプロンプトが表示されます。
mysql_secure_installation
このコマンドは、上記のトピックに関する質問をする対話型プロンプトを開始します。 apt はすでに MySQL root パスワードの入力を求められているため、変更を加えるにはそのパスワードを入力する必要があります。 root パスワードはすでに設定されているため、MySQL サーバーの root パスワードの変更に関するプロンプトに対する答えは No
になります。
4. 次の質問は、匿名ユーザー、「テスト」データベース、およびデータベースへのリモート アクセスに関するものです。セットアップでこれらのオプションのいずれかをそのままにしておく必要がある特別な理由がない限り、通常はこれらのプロンプトのすべてに Yes
と答えても安全です。
注: 「test」というデータベースの削除に失敗したことに関するエラーが発生する可能性があります。データベースが削除できない可能性があるため、これについては心配しないでください。存在しない可能性がありますが、それに関係なく、スクリプトは必要なことを実行し続けます。
この時点でMySQL の準備が整いました。どのようなデータベースやユーザーが必要になるかが分からない場合、さらに多くの構成を行うことは困難です。ただし、ほとんどの Web サイトでは、ソフトウェアのインストール時に必要なデータベースとユーザーが自動作成されることがよくあります。ただし、これはソフトウェアに大きく依存するため、ソフトウェアのREADMEファイルまたはインストール手順をざっと確認する必要があります。
5. MySQL が構成されたので、次に進み、この特定のサーバー用の基本的な PHP 設定をセットアップしましょう。 PHP には操作できる設定がたくさんありますが、ほとんどの場合変更する必要がある基本的な設定はほんのわずかです。 php 設定ファイルは /etc/php5/fpm/php.ini
にあります。任意のテキスト エディタでこのファイルを開きます。
nano /etc/php5/fpm/php.ini
nano の検索機能 ctrl+w
を使用して、文字列「memory_limit 」を検索します (引用符は省略します)。デフォルトのインストールでは、この行はすでに 128M に設定されていますが、アプリケーションでさらに多くのデータが必要な場合は、要件に合わせてこの行を変更できます。
チェックすべきもう 1 つの重要なオプションは「max_execution_time 」です。これもデフォルトで 30 に設定されます。アプリケーションでさらに必要な場合は、このオプションを変更できます。 php ログを特別なファイル/ディレクトリにセットアップすることを好む人もいます。これが必須の場合は、文字列「error_log = 」を検索し、通常はデフォルトで存在するセミコロンを削除して行のコメントを解除します。
この時点で、ログ ファイルの値を行の末尾に追加できます。パスがシステム上に存在することを確認してください。 php.ini ファイルへの必要な変更を完了したら、変更を保存してテキスト エディタを終了します。この時点で、MySQL と PHP5 はサイトのホスティングを開始する準備ができています。次に、Nginx を構成します。
Nginx のインストールと構成
6. Nginx (エンジン X) は、代替の非常に強力な Web サーバーです。このチュートリアルのこのセクションでは、Nginx がホストする Web ページの設定について説明します。 Nginx を構成する最初のステップは、「apt」ユーティリティを使用して必要なパッケージをインストールすることです。
apt-get install nginx
すべての依存関係が満たされていると仮定すると、Web ブラウザでサーバーの IP アドレスに移動すると、デフォルトの Nginx Web サイトが表示されるはずです。
注: Nginx をインストールした後、サーバーが自動的に起動しない場合があります。 Web ブラウザでサーバーの IP アドレスに移動しても以下のページが表示されない場合は、次のコマンドを発行して Nginx が起動していることを確認します。
service nginx start
Nginx はデフォルト ページを正常にホストできるようになりました。 Debian のデフォルト ページは派手な Web サイトですが、ほとんどのユーザーは何かカスタムのものをホストしたいと考えます。
7. 次の手順では、別の Web サイトをホストするための Nginx のセットアップについて説明します。 Nginx は、Apache 2 と同様に、/etc/nginx
に独自の構成ディレクトリがあります。 cd ユーティリティを使用して、このディレクトリに切り替えます。
cd /etc/nginx
このチュートリアルには、Nginx を使用して Web サイトをセットアップするための重要なファイルとディレクトリがいくつかあります。重要な最初の 2 つのディレクトリは、「sites-available」 ディレクトリと「sites-enabled」 ディレクトリです。 Apache 2 と同様に、Nginx は、sites-available ディレクトリ内の各サイトの構成ファイルを使用します。この構成ファイルは、アクティブな場合、sites-enabled ディレクトリ内でシンボリックにリンクされます。
デフォルトのサイトを削除するには、まずサイト対応のシンボリック リンクを削除する必要があります。
rm sites-enabled/default
8. 次に、Nginx がページを提供できるように、新しいサイト構成ファイルを作成してリンクする必要があります。サイト構成ファイルの作成は、デフォルトのサイト構成をコピーして変更することで簡素化できます。
cp sites-available/default sites-available/tecmint-test
これにより、使用する新しいサイト構成ファイルが作成されます。このファイルをテキスト エディタで開き、Nginx がファイルを提供するパスを変更します。
nano sites-available tecmint-test
このファイル内には、Nginx がサイトを提供するために変更する必要のある重要なオプションがいくつかあります。 1 つ目は「root」で始まる行で、この行は Nginx がこの特定のサイトにファイルを提供する場所を定義します。
このチュートリアルでは、デフォルトの「/var/www/html」のままにし、提供する HTML ファイルをこのディレクトリに配置するだけです。ただし、このサーバー上に複数のサイトまたはカスタム構成が存在する場合は、必ずこのパスを変更してください。
次に重要な行は「インデックス」行です。この記事は LEMP のインストールに関するものであり、サイトが php ページを提供している可能性があるため、Nginx にはデフォルトのページが php ページである可能性があることを通知する必要があります。これを行うには、ファイルのインデックス リストの末尾に「index.php」を追加するだけです。
新しいサイトを有効にする前に、Nginx がサービスを提供できるものが必要です。デフォルトのインデックス ページはすでに存在しますが、別のサイトが動作していることを確認するために、デフォルト ページのコンテンツを別のものに置き換えてみましょう。
echo “It's ALIVE!” > /var/www/html/index.html
9. 次のステップでは、作成した構成ファイルを sites-enabled ディレクトリにリンクして、新しいサイトを有効にします。これは、ln コマンドを使用し、サービス ユーティリティで Nginx の設定を再ロードすることで簡単に実現できます。
ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload
この時点で、Nginx は新しい「シンプルな」Web ページを提供しているはずです。これは、Web ブラウザでサーバーの IP アドレスに移動することで確認できます。
繰り返しになりますが、この記事はLEMPの非常に単純な構成を目的としています。ほとんどのサイトでは、関連するすべての部分をさらに構成する必要がありますが、構成オプションは数千にも及ぶ可能性があります。 Web サイトをホストするためにどのセットアップが選択されたとしても、幸運を祈ります。