cakephp

AWSにCakePHPをインストールして環境構築する

CakePHPの環境をAWSのEC2上に構築することがあったので、手順をまとめます。

AWSでEC2のインスタンスを作成

まずは、AWSでEC2のインスタンスを作成します。
手順はAWS公式のチュートリアルが分かりやすいので、参考にしてください。

↓AWS公式チュートリアル
https://aws.amazon.com/jp/getting-started/tutorials/launch-a-virtual-machine/

LAMP環境の構築

まずはLAMP(Linux、Apache、MySQL、PHP)環境を作ります。

パッケージを最新にする

$ sudo yum update -y

LAMPのインストール

本記事では、以下のバージョンでインストールします。
Apache:2.4
PHP:7.2
MySQL:5.7

PHPの拡張モジュール「mysqlnd」も一緒にインストールします。

$ sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd

Apacheの起動

LAMPのインストールが完了したら、Apacheを起動します。

$ sudo service httpd start

また、EC2を再起動した場合にApacheが自動で起動するように設定します。

$ sudo chkconfig httpd on

$ chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off

HTTP接続の許可

EC2インスタンスは作成した時点では、HTTP接続を許可していないので、許可設定を追加します。
該当するインスタンスのセキュリティグループのインバウンドで、以下のようにHTTPを追加します。

HTTP接続の許可

ブラウザで確認

ここで、ブラウザからインスタンスのパブリックDNSアドレス(またはパブリックIPアドレス)を開くと、以下のようにApacheのテストページが表示されます。

Apacheテストページ

ドキュメントルートの権限を設定

Apacheのドキュメントルート(/var/www/html)は、デフォルトではroot権限になっているため、ec2-userで使用できるように設定します。
apacheグループにec2-userを追加します。

$ sudo usermod -a -G apache ec2-user

一度ログアウトして、再ログインします。

$ exit

apacheグループが設定されているかを確認します。

$ groups
ec2-user wheel apache

/var/www/のグループ所有権をApacheグループに変更します。

$ sudo chown -R ec2-user:apache /var/www

グループの書き込み権限を追加し、サブディレクトリに対しても再帰的に許可を設定します。

$ sudo chmod 2775 /var/www
$ find /var/www -type d -exec sudo chmod 2775 {} \;
$ find /var/www -type f -exec sudo chmod 0664 {} \;

LAMPサーバーの動作確認

インストールおよびファイルのアクセス許可が正しく設定できたかを確認するために、PHPファイルを作成します。

$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

ブラウザで確認すると、以下のページが表示されます。

phpinfo

正しく表示することが確認できたら、作成したファイルは削除します。

$ rm /var/www/html/phpinfo.php

MySQLの設定

MySQLを起動します。

$ sudo service mysqld start

MySQLの初期設定を行います。

$ sudo mysql_secure_installation

rootのパスワードを入力しますが、デフォルトでは設定されていないのでEnterキーを押します。

新しいパスワードを設定します。

Please set the password for root here.

New password:

Re-enter new password:

「Y」と入力して匿名ユーザーアカウントを削除します。
「Y」と入力してリモートルートログインを無効にします。
「Y」と入力してテストデータベースを削除します。
「Y」と入力して権限テーブルを再ロードし、変更を保存します。

EC2を再起動した場合にMySQLが自動で起動するように設定します。

$ sudo chkconfig mysqld on

CakePHPのインストール

LAMP環境ができたら、CakePHPをインストールします。

必要なライブラリをインストール

まず、CakePHPに必要なライブラリをインストールします。

$ sudo yum install -y php72-intl php72-mbstring php72-pdo

Composerのインストール

CakePHPはComposerを利用してインストールするので、まずはComposerをインストールします。

$ cd ~
$ curl -sS https://getcomposer.org/installer | sudo php
All settings correct for using Composer
Downloading...

Composer (version 1.8.6) successfully installed to: /home/ec2-user/composer.phar
Use it: php composer.phar

$ sudo mv composer.phar /usr/local/bin/composer
$ sudo ln -s /usr/local/bin/composer /usr/bin/composer

Composerのインストールが正常に完了したかを確認します。
下記のようにバージョンが表示されれば、インストール完了です。

$ composer -V
Composer version 1.8.6 2019-06-11 15:03:05

CakePHPプロジェクトの作成

CakePHPをインストールし、プロジェクトを作成します。

$ cd /var/www/html
$ composer create-project --prefer-dist cakephp/app [ここにプロジェクト名を入れる]

Apacheのドキュメントルートを変更します。

$ sudo vi /etc/httpd/conf.d/custom.conf

以下のようにドキュメントルートを変更します。

DocumentRoot "/var/www/html/[プロジェクト作成時に指定したプロジェクト名]"

Apacheを再起動します。

$ sudo service httpd restart

ブラウザで確認

ブラウザでアクセスし、以下の画面が表示されればCakePHPのインストール完了です。

cakephp

 

関連記事一覧

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。