WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

【AWS】Amazon EC2(CentOS6.5)にSymfony2.7を導入の手順

この記事は約8分44秒で読めます

Amazon Web Services(AWS) Symfony
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

Amazon Web Services(AWS)が提供するAmazon Elastic Compute Cloud(EC2)はアマゾンが提供している仮想サーバです。

利用料金は1時間単位の柔軟な運用体制である他、仮想サーバの作成、複製、削除が容易に行える点や急なアクセス数の増加にも対応できる点がEC2の最大の特徴です。

仮想サーバ環境の複製が容易に行えることから開発環境にも持ってこいのサービスです。
そこで今回はAmazon EC2(CentOS6.5)にSymfony2.7を導入する方法を解説します。

導入する環境

次の環境を導入します。

  • CentOS ver6.5
  • PHP ver5.5.26
  • MySQL ver5.6.25
  • Apache ver2.2.15
  • Symfony ver2.7.1

AmazonEC2の操作手順

Amazon EC2ログイン

インスタンス > インスタンスの作成(アジアパシフィック東京)

ステップ 1: Amazon マシンイメージ(AMI)

AWS Marketplace > CentOS 6.5 (x86_64) – Release Media を選択する

ステップ 2: インスタンスタイプの選択

ファミリー : マイクロインスタンス
タイプ : t1.micro 無料利用枠の対象
vCPU : 1
メモリ (GiB) : 0.613
インスタンスストレージ(GB) : EBS のみ
EBS 最適化利用 : –
ネットワークパフォーマンス : 非常に低

ステップ 3: インスタンスの詳細の設定

特に変更なし

ステップ 4: ストレージの追加

特に変更なし

ステップ 5: インスタンスのタグ付け

Name:任意のインスタンス名称を設定してください。

ステップ 6: セキュリティグループの設定

既存のセキュリティグループを選択する

※22番ポートにアクセスできるようになっていることを確認してください。

汎用(SSD)から起動する

汎用(SSD)をすべてのインスタンスのデフォルトのブートボリュームにして、今後はコンソールから作成する(推奨)。を選択する

ステップ 7: インスタンス作成の確認

既存のキーペアを選択するか、新しいキーペアを作成します。

インスタンスの表示

インスタンスの状態が「running」となっていればサーバーが起動されたことが確認できます。

サーバー構築手順

SSH接続

パブリック IPの22番ポートに対してSSH接続を行ってください。
ユーザー名は「root」がデフォルトになっているかと思います。

AWSでSSH接続できないときは…

1.セキュリティグループで22ポートのアクセスを許可されていることを確認してください。
2.秘密鍵が認証に使用されているか
3.ユーザー名「ec2_user」で試してみる

SELinux無効化

とりあえず、面倒ごとが起きないようにSELinuxを無効化します。

一時的にSELinuxを無効化するコマンド

再起動後もSELinuxを無効化する設定

SELinuxはインストール時は無効化しておきます。
インストール作業が終わったら有効化に戻します。

何か起きたらその時に微調整していく感じです。

ファイアウォール設定(80ポート開放)

先にApacheで使う80番のポートを開放しておきます。
AmazonEC2のセキュリティグループの方のIP制御のお忘れなく。

初めてやったときにつまづきました。

RPM導入

普通にyum install phpとしてPHPなどをインストールすることは可能ですが、
そのままだと古いバージョンのPHPがインストールされてしまいます。(PHP 5.3.3等)

Symfony2.7となってくると最低でもPHP 5.3.9以上は必要となってくるので新しいバージョンのPHPを導入するために上記のRPMを導入します。
もしサーバーが落ちていたらミラーサイトを探してください…

Symfony3.0以降のことを考えるとPHP5.5以上にしておきたいところです。

yumの更新

MySQLのインストール

PHPMyAdminのインストール

MySQLをブラウザ上でGUI管理できるツールです。必要であれば。

依存関係のあるパッケージのインストール

既にインストール済みでしたが、念のためにやっておいた方が良さそう。

PHPのインストール

Symfony2で必要なPHPパッケージをインストールします。

Apacheのインストール

Apache(httpd.conf)設定

Apache不要ファイルの削除

Apacheの起動

Apacheの自動起動設定

testページ作成

ブラウザからtestページにアクセス

http://xxx.xxx.xxx.xxx/index.html

「test」と表示されたらok。
もし表示されなかったら今までの設定を再度確認してください。

MySQL(my.ini)の文字コード設定

参考サイト

MySQLの起動

MySQLを起動します。すんなり起動できるといいのですが私の場合は次のエラーが発生しました。
すんなり起動できた人はMySQLログインに進みます。

MySQLエラー対策:Swap領域の確保

t1.microインスタンスを使うとバッファが足りない問題が発生することがあります。
私の場合は次のようなエラーが発生しました。

メモリ状況をfreeで確認してみます。

メモリ確認

Swap領域の作成

メモリ確認コマンド(再)

Swap領域が確保されていることを確認できます。

再起動時もSwap領域の有効化

参考サイト

MySQLエラー対策2:mysql.sock

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

mysql.sockを手動で作成して再起動をかけます。

参考サイト

MySQL ログファイルの場所

MySQLの起動時に発生した問題は上記の2つでした。
これでも問題が解決しない場合はログファイルを参照してください。

MySQL 自動起動設定

MySQLにログインする

初回はパスワード設定されてないので、パスワードなしでログインできます。

MySQL文字コード確認

my.cnfで設定した文字コードが反映されているか確認します。
上記のように表示されていればok

MySQL 初期設定

MySQLの初期設定を行います。
空ENTERは大文字を選択したことになります。

MySQL ログイン確認

以上でMySQLの設定は終わりです。

phpMyAdminの設定

phpMyAdminは初期設定だと外部からアクセスできないので、アクセス可能なIPを指定する必要があります。

Apacheを再起動すると設定が反映されます。

Apacheを再起動する

これでブラウザからphpMyAdminにアクセスできるようになります。

http://xxx.xxx.xxx.xxx/phpmyadmin
http://xxx.xxx.xxx.xxx/phpMyAdmin

php.iniの設定

Apacheを再起動すると設定が反映されます。

Apacheを再起動する

サーバーのタイムゾーン設定

タイムゾーンがEST(米国東海岸時間)となっています。

JSTと表示されればokです。

NTPサーバーのインストール

ntp.confの設定

NTPサーバーの起動

NTPサーバー名の前に*または+が表示されれば時刻同期完了です。(10分程度かかります)

参考サイト

Zipのインストール

Zipの圧縮/解凍ツールを導入します。
入れなくてもいいですが、私はよく使うので導入しました。

参考サイト

wgetのインストール

httpやftp経由のファイル取得ツールです。
これも便利なので導入しました。

ウイルス対策ソフトの導入(Clam AntiVirus)

ウイルス対策ソフトは必要だと思うので、導入します。

参考サイト

Symfony2のインストール手順

公開ディレクトリにカレントディレクトを移動

composerのダウンロード

composerからSymfony2をインストールする

Symfony2.7系をインストールします。
/var/www/html/symfonyディレクトリが生成されます。

symfonyディレクトリに移動する

パーミッションの設定

キャッシュとログディレクトリは書き込みが行われるのでとりあえず。
本番運用時ではPHP実行ユーザーに適切な権限を与えましょう。

Symfony2バージョン確認コマンド

Symfony2.7.1がインストールされています。

app_dev.php, config.phpを外部アクセスできるようにする

本番運用時は有効化してください。

symfony動作環境チェック

symfonyが正しく動作するかの環境チェックを行ってくれるコマンドが用意されています。

Your system is ready to run Symfony2 projectsというメッセージが表示されていればSymfonyが正常に動作する環境が整っているということを確認できます。

http://xx.xxx.xx.xx/symfony/web/check.php
http://xx.xxx.xx.xx/symfony/web/config.php
http://xx.xxx.xx.xx/symfony/web/app_dev.php

パブリック DNSやパブリック IPに対してブラウザからアクセスしてSymfonyの画面が表示されればokです。
この3つのページが正常に表示されていればSymfonyのインストールは完了です。

SELinuxの設定

SELinuxの設定は参考サイトの設定コマンドを抜粋しました。
詳しくは参考サイトをご覧ください。

SELinuxのモードを確認する

再起動時にラベルの再構築を行う

ここで再起動をします。

ポリシー違反を検索するコマンド

SELinux 有効化

/var/wwwのラベルの貼り直しするコマンド

audit2allowをインストール

sesearchコマンドをインストール

ルールが定義されたモジュールを作成

参考サイト

さいごに

Amazon EC2はインスタンスイメージを保存(スナップショット)することで同じ環境を何個も作れます。
一通りのサーバ構築ができたらスナップショットしておくと次回のサーバ構築が簡単になります。

以上、Amazon EC2(CentOS6.5)にSymfony2.7を導入の手順でした。

関連記事

  1. symfony2
  2. symfony2
  3. Symfony2 Routing Annotation
  4. Symfony2 KnpPaginatorBundleで全件数を取得する
  5. symfony2
  6. Symfony2 blogチュートリアル 05 バンドルのディレクトリ構造

PR

カテゴリー