序章
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;
}
}