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
$ 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ホームページが見れますが、自由に使える為いくつか設定が必要がある。
①各種設定ファイルを修正する。
###自動導入設定ファイルを編集する $ 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」を入力すれば下記画面になります。
④不要ファイルを削除する。
###元ホームページファイルを削除する $ 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/
これでベース環境を構築できました。