EC2の1インスタンスにLAMPを構築して、CakePHP2.xの環境を作った。
1.EC2のインスタンス作成
2.EC2の初期設定
3.LAMPの構築
4.CakePHPの設定
5.動作確認
1.EC2インスタンス作成
下記のポリシーでインスタンスを作成
- t2.microの1インスタンスの最小構成(メモリ1G、SSD8G)
- 開発や小規模用途
- ELBや拡張は考慮せず
- AMI2015.03を使用
- SSH:22とHTTP:80とSMTP:25だけ空ける
- SMTPはマイIP専用
2.EC2の初期設定
(SSHの鍵認証でのログイン方法の記述は省略)
SSHでログインしたら
AMIのアップデート
sudo yum update
webサーバのコンテンツ用にwwwグループを作成
sudo groupadd www
ec2-userをwwwグループに参加
sudo usermod -a -G www ec2-user
exit等をして、自分が所属しているグループを確認
exit
(再ログイン後)
groups
id
な感じ
とりあえず、時計をローカルタイムにする
sudo vim /etc/sysconfig/clock
以下に変更
ZONE="Asia/Tokyo"
UTC=false
ローカルタイムもコピーしておく
sudo cp /usr/share/zoneinfo/Japan /etc/localtime
確認
date
cronも再起動
sudo service crond restart
3.LAMPの構築
Apache2.4のインストール
yumからインストール
sudo yum install httpd24
初期設定
sudo vi /etc/httpd/conf/httpd.conf
下記の内容に変更
<Directory /var/www/html>
(省略)
# AllowOverride None
AllowOverride All
とりあえずスタート
sudo service httpd start
自動起動にしておく
sudo chkconfig httpd on
確認
chkconfig --list httpd
/var/wwwの所有グループをwwwに変更
sudo chown -R root:www /var/www
パーミッションも変更
sudo chmod 2775 /var/www
以後/var/wwwのディレクトリは775、ファイルは664になるようにする
find /var/www -type d -exec sudo chmod 2775 {} +
find /var/www -type f -exec sudo chmod 0664 {} +
MySQL5.5のインストール
yumでインストール
sudo yum install mysql55 mysql55-server
初期設定
sudo vi /etc/my.conf
以下を[mysqld]に追加
default-storage-engine = InnoDB
character-set-server = utf8
このまま起動するとエラーになるので、mysql_install_dbを実行
sudo mysql_install_db --datadir=/var/lib/mysql --user=mysql
とりあえずmysqldを起動
sudo service mysqld start
自動起動にする
sudo chkconfig mysqld on
確認
chkconfig --list mysqld
初期設定コマンドにて、rootパスワード設定、無名アカウント、テストDBを削除
mysql_secure_installation
mysqlにログイン
mysql -uroot
CakePHP(Webアプリ)用のアカウントとDBを作成
# DB:webapp01作成
create database webapp01;
# id:app01/pass:hoge01を作成
create user 'app01'@'localhost' identified by 'hoge01';
create user 'app01'@'127.0.0.1' identified by 'hoge01';
# app01にwebapp01にのみ権限を付与
grant all on webapp01.* to 'app01'@'localhost' identified by 'hoge01';
grant all on webapp01.* to 'app01'@'127.0.0.1' identified by 'hoge01';
# 更新
flush privileges;
quit
PHP5.6のインストール
yumでインストール
sudo yum install php56
sudo yum install php56-dba php56-mbstring php56-mcrypt php56-opcache php56-pdo
php56-tidy php56-mysqlnd php56-dbg
php.iniの設定
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation=off
mbstring.detect_order=auto
date.timezone = Asia/Tokyo
httpd再起動
sudo service httpd restart
初期動作確認
テスト用HTML作成
vi /var/www/html/index.html
<html>
<head>
<title>Index</title>
</head>
<body>
<h3>Index Page</h3>
</body>
</html>
PHP確認用
vi /var/www/html/phptest.php
<?php
echo "PHP TEST!!";
phpinfo();
?>
4.CakePHPの初期設定
CakePHPをDL
https://github.com/cakephp/cakephp/archive/2.6.4.zip
zipを解凍して/var/www/html/にupload
uploadしたフォルダ名を作成するアプリケーション名に変更(ex:webapp01)
webapp01/app/tmp のパーミションを777に変更
sudo chmod -R 777 app/tmp
設定を変更
vi webapp01/app/Config/core.php
Configure::write('Security.salt','任意の文字列:40文字');
Configure::write('Security.cipherSeed','任意の数列:32文字');
DBの設定(前述で設定した内容を設定)
# 名前を変更する
mv app/Config/database.php.default app/Config/database.php
vi webapp01/app/Config/database.php
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'app01',
'password' => 'hoge01',
'database' => 'webapp01',
'prefix' => '',
'encoding' => 'utf8',
);
DebugKitのDL
https://github.com/cakephp/debug_kit/archive/2.2.zip
※2.x系は2.2を使用。masterは3.0以上専用。
設定
vi webapp01/app/Config/bootstrap.php
CakePlugin::load('DebugKit');
vi webapp01/app/Controller/AppController.php
class AppController extends Controller {
public $components = array('DebugKit.Toolbar');
}
5.動作確認(完了)
http:// [public DNS] /webapp01/
参考
http://qiita.com/muttan/items/ecba4bb6d68b4c35bdf9
http://qiita.com/shizuma/items/126d2245c58d97b274c7
http://qiita.com/tsumekoara/items/d79254a1c791bb38ae8e
http://qiita.com/shojimotio/items/035ad7b598cd14f118e2