Webサーバ周り検証をする為、CI(Code Igniter)という軽量級PHP MVCフレームワークベース環境構築手順をメモにしておきます。

まず、前の記事と同じようにEC2インスタンスにAWSへのアクセス権限を付与する為、IAMロール「Role-WebServer」を作って下記ポリシーを付けます。

信頼ポリシー(EC2インスタンスをPrincipalにする)

{
 "Version": "2012-10-17",
 "Statement": [
   {
   "Sid": "",
   "Effect": "Allow",
   "Principal": {
   "Service": "ec2.amazonaws.com"
   },
   "Action": "sts:AssumeRole"
   }
 ]
}

ロールポリシー(S3フールアクセス権限付与)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}
  • LAMPサーバ構築

「Role-WebServer」を使用してAmazon Linux EC2インスタンスを起動してLAMP構築手順に従ってLAMP環境を構築する。

システムのタイムゾーンを東京時間に設定する。

$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
php設定ファイルのタイムゾーンを東京時間に設定する。
$ sudo vi /etc/php.ini

;date.timezone =     ⇒    date.timezone = "Asia/Tokyo"

Apacheを再起動する。

$ sudo service httpd restart
  • CIソースファイルをダウンロードする

最新版CI(現時点Version2.2.1)をダウンロードして解凍する。

$ cd /var/www/html
$ sudo wget https://github.com/bcit-ci/CodeIgniter/archive/2.2.1.zip
$ sudo unzip 2.2.1.zip
$ sudo rm -f 2.2.1.zip
$ sudo mv CodeIgniter-2.2.1 demo
  • 検証用DB作成

mysqlにログインしてdemoデータベースを作成する(検証の為、一応rootユーザを使う)。

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>create database demo;
Query OK, 1 row affected (0.00 sec)
mysql>exit;
Bye
  • CI設定

ウェブブラウザに「EC2インスタンスのPublic DNS/demo/index.php」を入力すれば下記のようなデフォルトCIホームページが見れますが、自由に使える為いくつか設定が必要がある。

homepage_origin

①各種設定ファイルを修正する。

###自動導入設定ファイルを編集する
$ sudo vi /var/www/html/demo/application/config/autoload.php

###データベースライブラリを自動導入にする
$autoload['libraries'] = array();  ⇒
$autoload['libraries'] = array('database');

###URL解析ヘルパーを自動導入にする
$autoload['helper'] = array();  ⇒
$autoload['helper'] = array('url');

 

###データベース設定ファイルを編集する
$ sudo vi /var/www/html/demo/application/config/database.php

###DBユーザ名を指定する
$db['default']['username'] = ''; ⇒
$db['default']['username'] = 'root';

###DBユーザのパスワードを指定する
$db['default']['password'] = ''; ⇒
$db['default']['password'] = '「パスワード」';

###DB名を指定する
$db['default']['database'] = ''; ⇒
$db['default']['database'] = 'demo';

②自分のホームページindex.phpを作成する。

$ sudo vi /var/www/html/demo/application/views/index.php

ファイル内容は下記にする

<?php
 echo "my index page";
 echo phpinfo();
?>

③ホームパージルーティングを新規作成したファイルに切り替え。

デフォルトコントローラーはWelcomeなので、編集してそのまま使います。

$sudo vi /var/www/html/demo/application/controllers/welcome.php

###呼び出すビューを新規作成したindex.phpにする。
$this->load->view('welcome_message'); ⇒
$this->load->view('index');

これでウェブブラウザに「EC2インスタンスのPublic DNS/demo/index.php」を入力すれば下記画面になります。

homepage

 

④不要ファイルを削除する。

###元ホームページファイルを削除する
$ sudo rm -f /var/www/html/demo/application/views/welcome_message.php

###元ホームページに紐付いているユーザガイドを削除する
$ sudo rm -rf /var/www/html/demo/user_guide/

 

⑤ファイル権限を設定する。

 $sudo chown -R apache:apache /var/www/html/demo/

 

  • AWS-PHP-SDKをダウンロードする

AWS-PHP-SDKを共有ライブラリとしてインストールします。

$ sudo su -
# yum install git -y
# cd /usr/lib/
# git clone https://github.com/awslabs/aws-php-sample.git
# cd aws-php-sample
# curl -sS https://getcomposer.org/installer | php
# php composer.phar install
# mv vendor ../aws-php-sdk
# cd ..
# rm -rf aws-php-sample/

これでベース環境を構築できました。

TOP