AWS(アマゾンウェブサービス)のEC2インスタンスにCakePHP3をインストールした際の流れを記録した備忘録です。掲載日:2019年3月23日
悪戦苦闘の末、AWS EC2に下記のインスタンスを作成してCakePHPの初期画面を表示させることができました。
【AWS EC2 設定内容】
Amazon マシンイメージ (AMI):Amazon Linux 2 AMI (HVM)
PHP7.2
CakePHP3.7.5 Red Velvet
[LAMP サーバー構築]Amazon Linux 2のExtras Libraryを利用してPHP 7.2をインストール
AWS EC2にコマンドラインでログイン
ソフトウェアの更新を実行
$ sudo yum update -y
Amazon Linux Extras リポジトリをインストールしてAmazon Linux 2 PHP パッケージの最新バージョンを取得。PHP7.2をインストール
$ sudo amazon-linux-extras install -y php7.2
PHP本体のインストールとCakePHP公式サイトに記載のあった下記モジュール類をインストール
mbstring PHP 拡張、intl PHP 拡張、simplexml PHP 拡張
$ sudo yum install php php-mbstring php-intl php-xml
【2019年4月10日追記】
Apacheのインストールを書洩らしていましたので、下記に追記しました。MySQLは別途インストールする段取りにしました。
$ sudo yum install -y httpd
【2019年8月8日追記】
上記「sudo yum install php php-mbstring php-intl php-xml
」を実行するとapacheも依存チェックにより、自動でインストールされていました。
Composerインストール
公式の Composer ドキュメント に書かれた インストーラースクリプトを実行。
Composer にパスを通す。
sudo mv composer.phar /usr/local/bin/composer
CakePHP3インストール
/var/www/html内に移動してCakePHPをインストール
※インストール前にディレクトリの所有権とアクセス許可を設定しておいてください。詳細はAWSのチュートリアル「ファイルの許可を設定するには」を参照してください。
composer create-project --prefer-dist cakephp/app my_cake_app
インストールが無事終われば、Apacheの設定へ
Apache設定
/etc/httpd/conf/httpd.conf設定変更。「webroot」をDocumentRootに加えることを忘れずに!
DocumentRoot "/var/www/html/cake/webroot"
.htaccessを使うため、下記に変更
Directory "/var/www/html"
AllowOverride None
↓
AllowOverride All
【2019年8月8日追記】
DocumentRoot “/var/www/html/cake/webroot”のcakePHPのディレクトリ名が間違っていました。
修正前:DocumentRoot “/var/www/html/cake/webroot”
↓
修正後:DocumentRoot “/var/www/html/my_cake_app/webroot”
CakePHP3インストール成功
Amazon Linux 2のExtras Libraryを使用することでphp7.2をインストールできることが分かりました。
Composerを使うメリット
パーミッション設定がラクに行える
CakePHP2の場合、パーミッションを手動で行っていましたが、Composerを使用することでこれらもコマンドラインで承認すれば、自動で行ってくれます。
CakePHP の変更に合わせて最新の状態に保つ
コマンドラインでphp composer.phar update を実行するたびに、このマイナーバージョンの パッチリリースが手に入るという機能は非常に有用。最新の安定版マイナーリリースを手に入れることができるようです。
【参考サイト】
Amazon Linux 2 に LAMP ウェブサーバーをインストールする
Amazon Linux 2でPHP7.2をインストールする