開発者ドキュメント

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

序章

LEMPソフトウェアスタックは、動的WebページおよびWebアプリケーションを提供するために使用できるソフトウェアのグループです。 これは、NginxWebサーバーを備えたLinuxオペレーティングシステムを表す頭字語です。 バックエンドデータはMySQLに保存され、動的処理はPHPによって処理されます。

このガイドでは、Ubuntu14.04サーバーにLEMPスタックをインストールする方法を示します。 Ubuntuオペレーティングシステムが最初の要件を処理します。 残りのコンポーネントを稼働させる方法について説明します。

注: LEMPスタックは、起動時にこのスクリプトをユーザーデータに追加することで、ドロップレットに自動的にインストールできます。 ドロップレットユーザーデータの詳細については、このチュートリアルをご覧ください。

前提条件

このチュートリアルを完了する前に、サーバー上にsudo権限を持つ通常の非rootユーザーアカウントが必要です。 このタイプのアカウントを設定する方法については、 Ubuntu14.04初期サーバー設定の手順1〜4を完了することで学ぶことができます。

アカウントを利用できるようになったら、そのユーザー名でサーバーにサインインします。 これで、このガイドで概説されている手順を開始する準備が整いました。

1. NginxWebサーバーをインストールします

サイト訪問者にWebページを表示するために、最新の効率的なWebサーバーであるNginxを採用します。

この手順で取得するすべてのソフトウェアは、Ubuntuのデフォルトのパッケージリポジトリから直接取得されます。 これは、aptパッケージ管理スイートを使用してインストールを完了することができることを意味します。

このセッションでaptを使用するのはこれが初めてなので、ローカルパッケージインデックスを更新することから始める必要があります。 次に、サーバーをインストールできます。

sudo apt-get update
sudo apt-get install nginx

Ubuntu 14.04では、Nginxはインストール時に実行を開始するように構成されています。

Webブラウザでサーバーのドメイン名またはパブリックIPアドレスにアクセスすることにより、サーバーが稼働しているかどうかをテストできます。

サーバーを指すドメイン名がなく、サーバーのパブリックIPアドレスがわからない場合は、端末に次のいずれかを入力してドメイン名を見つけることができます。

 ip addr show eth0 |  grep inet |  awk'{print $ 2;  }'|  sed's//。*$//'
  111.111.111.111 fe80 :: 601:17ff:fe61:9801

または、以下を使用してみてください。

カール http://icanhazip.com
  111.111.111.111

Webブラウザに表示される行の1つを試してください。 Nginxのデフォルトのランディングページに移動するはずです:

http:// server_domain_name_or_IP

上記のページが表示されている場合は、Nginxが正常にインストールされています。

2. MySQLをインストールしてサイトデータを管理する

Webサーバーができたので、データベース管理システムであるMySQLをインストールして、サイトのデータを保存および管理する必要があります。

次のように入力すると、これを簡単にインストールできます。

sudo apt-get install mysql-server

MySQLシステム内で使用するためのroot(管理)パスワードを提供するように求められます。

これでMySQLデータベースソフトウェアがインストールされましたが、その構成はまだ完全ではありません。

まず、データベースと情報を格納するために必要なディレクトリ構造を生成するようにMySQLに指示する必要があります。 これを行うには、次のように入力します。

sudo mysql_install_db

次に、いくつかの安全でないデフォルトを変更するように求める簡単なセキュリティスクリプトを実行する必要があります。 次のように入力してスクリプトを開始します。

sudo mysql_secure_installation

インストール時に選択したMySQLルートパスワードを入力する必要があります。

次に、そのパスワードを変更するかどうかを尋ねられます。 MySQLルートパスワードに満足している場合は、「N」を入力して「いいえ」を入力し、「ENTER」を押します。 その後、一部のテストユーザーとデータベースを削除するように求められます。 安全でないデフォルト設定を削除するには、これらのプロンプトで「ENTER」を押すだけです。

スクリプトが実行されると、MySQLを使用できるようになります。

3. 処理のためにPHPをインストールする

これで、ページを提供するためにNginxがインストールされ、データを保存および管理するためにMySQLがインストールされましたが、これら2つの部分を接続し、動的コンテンツを生成するための何かが必要です。 これにはPHPを使用できます。

Nginxには他のWebサーバーのようなネイティブPHP処理が含まれていないため、「fastCGIプロセスマネージャー」の略であるphp5-fpmをインストールする必要があります。 処理のためにこのソフトウェアにPHPリクエストを渡すようにNginxに指示します。

このモジュールをインストールできます。また、PHPがデータベースバックエンドと通信できるようにする追加のヘルパーパッケージを取得します。 インストールにより、必要なPHPコアファイルが取り込まれます。 次のように入力してこれを行います。

sudo apt-get install php5-fpm php5-mysql

PHPプロセッサを構成する

これでPHPコンポーネントがインストールされましたが、セットアップをより安全にするために、構成を少し変更する必要があります。

root権限でメインのphp5-fpm構成ファイルを開きます。

sudo nano /etc/php5/fpm/php.ini

このファイルで探しているのは、cgi.fix_pathinfoを設定するパラメーターです。 これはセミコロン(;)でコメントアウトされ、デフォルトで「1」に設定されます。

これは、PHPファイルが完全に一致しない場合に、見つけることができる最も近いファイルを実行しようとするようにPHPに指示するため、非常に安全でない設定です。 これにより、基本的に、ユーザーは、実行を許可されるべきではないスクリプトを実行できるようにPHPリクエストを作成できます。

次のように、行のコメントを解除して「0」に設定することにより、これらの条件の両方を変更します。

cgi.fix_pathinfo=0

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

ここで、次のように入力してPHPプロセッサを再起動する必要があります。

sudo service php5-fpm restart

これにより、行った変更が実装されます。

4. PHPプロセッサを使用するようにNginxを構成する

これで、必要なすべてのコンポーネントがインストールされました。 まだ行う必要がある唯一の構成変更は、動的コンテンツにPHPプロセッサを使用するようにNginxに指示することです。

これはサーバーブロックレベルで行います(サーバーブロックはApacheの仮想ホストに似ています)。 次のように入力して、デフォルトのNginxサーバーブロック構成ファイルを開きます。

sudo nano /etc/nginx/sites-available/default

現在、コメントが削除されているため、Nginxのデフォルトのサーバーブロックファイルは次のようになります。

サーバー{リッスン80default_server; リッスン[::]:80 default_server ipv6only = on;
root /usr/share/nginx/html;
index index.html index.htm;

server_name localhost;

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

}

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