Compute Engine での LEMP の設定

このページでは、仮想マシン上で実行されている LEMP スタックを取得する方法を示します。Debian または Ubuntu インスタンスで LEMP を設定するには、このチュートリアルの手順に従ってください。一般に、これらの手順は他のオペレーティング システムでも同様になります。

また、Google Cloud Launcher を使用して、LEMP スタックを自動的にデプロイすることもできます。

目標

  • 仮想マシン インスタンスを作成する
  • SSH を使用してインスタンスに接続する
  • インスタンス上で LEMP スタックをデプロイする
  • ファイルを転送する
  • DNS マッピングを設定する

費用

このチュートリアルでは、以下を含む、Cloud Platform の課金対象となるコンポーネントを使用しています。

  • Google Compute Engine

料金計算ツールを使用すると、想定される利用方法に基づいて費用の見積もりを作成できます。 Cloud Platform を初めて使用するユーザーは、無料トライアルをご利用いただけます。

始める前に

  • GCP プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  • プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

仮想マシン インスタンスの作成

Cloud Launcher を使用すると、最小限の労力でインスタンス上で LEMP スタックを自動的にデプロイできます。

また、以下の手順に従い、Google Cloud Platform Console を使用して LEMP スタックをデプロイすることもできます。

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. [名前] をlemp-tutorialに設定します。
  4. [マシンタイプ] をf1-microに設定します。
  5. [ブートディスク] の [変更] をクリックし、ブートディスクの構成を開始します。
  6. OS イメージタブでDebian 7.x または Ubuntu 14.04を選択します。

  7. [選択] をクリックします。
  8. [ファイアウォール] で、[HTTP トラフィックを許可する] と [HTTPS トラフィックを許可する] を選択します。
  9. [作成] をクリックしてインスタンスを作成します。

インスタンスが起動するまで数秒お待ちください。

Compute Engine での LEMP スタックのデプロイ

仮想マシン インスタンスが実行されたので、LEMP スタックを設定します。

インスタンスに接続する

Cloud Platform Console 内から SSH を使用するか、Cloud SDK の一部である gcloud compute ssh コマンドを使用して、インスタンスに直接接続できます。このチュートリアルでは、Cloud Platform Console での手順を示します。

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. 仮想マシン インスタンスのリストで、接続するインスタンスの行の SSH をクリックします。

  3. VM インスタンスの IP アドレスをメモしておきます。このアドレスは、[外部 IP] の列に表示されます。

nginx と PHP をインスタンスにインストールする

インスタンスの作成により、LEMP の「Linux」部分は既に用意されています。次に、nginx と PHP をインストールします。

  1. nginx と PHP をインストールします。

    sudo apt-get update
    sudo apt-get install -y nginx php5-fpm
    
  2. デフォルトの nginx 設定ファイルを編集します。

    sudo nano /etc/nginx/sites-available/default
    
  3. 下に示されている PHP セクションの行をコメント化解除します。

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #       # With php5-cgi alone:
    #       fastcgi_pass 127.0.0.1:9000;
    #       # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    #       fastcgi_index index.php;
            include fastcgi_params;
    }
    
  4. nginx サービスを再起動します。

    sudo service nginx restart
    

nginx と PHP をテストする

  1. この手順では、インスタンスの外部 IP アドレスが必要となります。Cloud Platform Console の [VM インスタンス] ページでアドレスを確認できます。

    [VM インスタンス] ページに移動

    ブラウザで、外部 IP アドレスを入力して、Apache が実行されていることを確認します。

    http://[YOUR_EXTERNAL_IP_ADDRESS]
    

    Welcome to nginx!」と表示されます。

  2. デフォルトのウェブサーバーのルートにテストファイルを作成します。

    Debian 7

    sudo sh -c 'echo "<?php phpinfo();?>" > /usr/share/nginx/www/phpinfo.php'
    

    Ubuntu 14.04

    sudo sh -c 'echo "<?php phpinfo();?>" > /usr/share/nginx/html/phpinfo.php'
    

  3. テストファイルを参照して、nginx と PHP が連携して動作していることを確認します。

    http://[YOUR_EXTERNAL_IP_ADDRESS]/phpinfo.php
    

    現在の nginx 環境に関する情報を提供する標準の PHP 情報ページが表示されます。

ページの読み込みに失敗した場合(HTTP 404)、以下を確認します。

  • Cloud Platform Console で、インスタンスに対して HTTP トラフィックが許可されている
  • URL で正しい IP アドレスとファイル名が使用されている

MySQL をインスタンスにインストールする

MySQL と関連する PHP コンポーネントをインストールします。

sudo apt-get install -y mysql-server php5-mysql php-pear

MySQL を設定する

MySQL をインストールしたので、次に、mysql_secure_installation コマンドを実行してインストールのセキュリティを向上する必要があります。これにより、ルートユーザーのパスワードの設定(まだ設定されていない場合)、匿名ユーザーの削除、ローカルマシンへのルートユーザーによるアクセスの制限、テスト データベースの削除などの処理が行われます。

sudo mysql_secure_installation

ファイルの転送

FTP や gcloud コマンドなど、ウェブサーバーを実行する VM インスタンスにファイルを転送する方法は複数あります。詳細については、Linux インスタンスへのファイルの転送をご覧ください。このチュートリアルでは、Cloud SDK の一部である gcloud コマンドを使用します。

copy-files コマンドを使用して、ファイルをインスタンスにコピーします。次の例では、ワークステーションからインスタンスのホーム ディレクトリにファイルをコピーします。

gcloud compute copy-files [LOCAL_FILE_PATH] lemp-tutorial:/var/www/html

[LOCAL_FILE_PATH] をワークステーション上のファイルのパスに置き換えます。

また、コピー元の変数とコピー先の変数を入れ替えることで、インスタンスからローカル ワークステーションにファイルをコピーすることもできます。次の例では、インスタンスからワークステーションにファイルをコピーします。

gcloud compute copy-files lemp-tutorial:/var/www/html [LOCAL_FILE_PATH]

[LOCAL_FILE_PATH] をワークステーション上のファイルのコピー先とする場所のパスに置き換えます。

DNS の設定

ソフトウェア スタックを設定し、ファイルを転送した後、必要に応じて独自のドメイン名をサイトにマッピングできます。独自の DNS システムを完全に制御する必要がある場合は、ドメイン ネーム サービス(DNS)プロバイダとして機能する Google Cloud DNS を使用できます。Cloud DNS に固有の手順が必要な場合は、クイックスタートをご覧ください

このチュートリアルでは、ドメイン登録事業者など、サードパーティ プロバイダを介して DNS を設定する一般的なシナリオについて説明します。

既存の DNS プロバイダを使用する場合は、そのプロバイダ用のレコードを作成する必要があります。このレッスンでは、Compute Engine でホストされているウェブサイトを指すように example.comwww.example.com がマッピングされていると仮定しています。

example.com ドメイン名については、DNS プロバイダ用の A レコードを作成します。www.example.com サブドメインについては、wwwexample.com ドメインを指すように CNAME レコードを作成します。A レコードは、ホスト名を IP アドレスにマッピングします。CNAME レコードは、A レコードのエイリアスを作成します。このレッスンでは、example.comwww.example.com が同じ IP アドレスにマッピングされていると仮定しています。

  1. インスタンスの外部 IP アドレスを取得します。Cloud Platform Console の [VM インスタンス] ページから IP アドレスを確認できます。

    [VM インスタンス] ページに移動

  2. プロバイダの DNS 管理インターフェースにログインし、管理するドメインを見つけます。具体的な手順については、DNS プロバイダのドキュメントをご覧ください。
  3. A レコードを作成し、値を外部 IP アドレスに設定します。名前またはホスト フィールドは、独自ドメインを表す @ に設定できます。詳細については、さまざまな DNS タスクの実行に役立つ情報を提供する Google Apps サポートページをご覧ください。
  4. CNAME レコードを作成し、名前を www に設定し、値を @ またはホスト名とピリオド(例: example.com.)に設定します。 さまざまなプロバイダ用の A レコードを作成する方法については、Google Apps のヘルプセンターをご覧ください。
  5. プロバイダに適している場合は、変更が行われたことを反映するために、SOA レコードのシリアル番号を増やします。これにより、レコードが反映されます。

DNS の変更を確認する

Google Domains など、ドメイン名登録事業者が DNS プロバイダでもある場合は、通常、すべて設定されています。登録と DNS に別々のプロバイダを使用している場合は、ドメインに関連付けられた正しいネームサーバーがドメイン名登録事業者で使用されていることを確認してください。

ゾーンの有効期間(TTL)値によっては、DNS を変更してから、レコードの更新が反映されるまでしばらく時間がかかることがあります。変更内容が新しいホスト名である場合は、速やかに変更が有効になる必要があります。これは、DNS リゾルバでは、以前の値はキャッシュされず、DNS プロバイダに問い合わせてリクエストのルーティングに必要な情報が取得されるためです。

クリーンアップ

LEMP のチュートリアルが終了したら、Google Cloud Platform で作成したリソースについて料金が発生しないようにクリーンアップすることができます。以下のセクションで、このようなリソースを削除または無効にする方法を説明します。

プロジェクトの削除

課金を停止する最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除する手順は次のとおりです。

  1. GCP Console で [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

インスタンスを削除する

Compute Engine インスタンスを削除する手順は次のとおりです。

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. lemp-tutorialインスタンスの隣のチェックボックスをオンにします。
  3. ページの上部にある、[削除] ボタンをクリックし、インスタンスを削除します。

次のステップ

  • デフォルトでは、ウェブサーバーのドキュメント ルートは root ユーザーが所有しています。必要に応じて、別のユーザーに対してドキュメント ルートを設定したり、nginx の設定ファイルでディレクトリの場所を変更したりすることができます。ウェブサーバーのドキュメント ルートは /usr/share/nginx/www で、nginx の設定ファイルは /etc/nginx/sites-available にあります。

  • Google Cloud Platform のその他の機能をお試しください。こちらのチュートリアルをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント