こんにちわ、タカです。今回は備忘録も意味も兼ねてAWSにLaravel(5.4)をインストールする際の手順を紹介したいと思います。
そもそも「Laravelって何?」という方は下記記事をご参照ください。
AWSでEC2インスタンスの作成
まずは、EC2インスタンスを作成いたします。今回はAmazon Linux AMIのt2.microを作成します。ここは用途に合わせて適切なインスタンスを選択してください。
EC2インスタンスの作成に関しては、公式のチュートリアルがとてもわかりやすいのでご参照ください。
LAMP環境の構築
EC2インスタンスを作成したらLAMP環境を構築していきます。ちなみに、LAMPではなくても大丈夫なので用途に合わせて適切な環境を構築してください。
SSHでEC2に接続
SSHでEC2に接続します。なお、下のコードはキーペアが「.ssh/MyKeyPair.pem」にありユーザー名が「ec2-user」を想定しています。またパブリック DNSは各自インスタンス情報を参照してください。
$ ssh -i ~/.ssh/MyKeyPair.pem ec2-user@パブリック DNS (IPv4)
yumのアップデート
EC2インスタンスに接続したら、まずすべてのソフトウェアパッケージが最新の状態であることを確認するため、yumをアップデートします。
$ sudo yum update -y
LAMPのインストール
yumのアップデートが完了したら、下記コードでLAMPをインストールしていきます。なお、今回はPHPのバージョンは7、mysqlのバージョンは5.7をインストールします。またPHPの拡張モジュール「mysqlnd」も合わせてインストールします。
$ sudo yum install -y httpd24 php70 mysql57-server php70-mysqlnd
Apacheの起動
LAMPのインストールが完了したらApacheを起動します。
$ sudo service httpd start
HTTPトラフィックの許可
ブラウザからアクセスするためにEC2インスタンスのセキュリティグループのインバウンドにてHTTPトラフィックを許可します。
これでブラウザからパブリックIPを叩けばApacheの画面が表示されると思います。
ユーザー(ec2-user)に書き込み権限の割り当て
これでLaravelをインストールする環境が一応揃ったのですが、その前にドキュメントルートの書き込み権限をec2-userに割り当ててあげる必要があります。(デフォルトではroot権限)
今回はAWSの公式サイトでも紹介されている方法でやってみます。
ec2-userをapacheグループに追加
下のコードでec2-userをApacheグループに追加します。
$ sudo usermod -a -G apache ec2-user
ログアウトして再ログイン
新しいグループを取得するために一度ログアウト(下記コード)して再度SSH接続します。
$ exit
メンバーシップの確認
下記コードでメンバーシップの確認をします。(ec2-user wheel apacheと表示されればOK)
$ groups
ec2-user wheel apache
グループ所有権をApacheグループに変更
続いて下記コードで/var/wwwとその配下のコンテンツのグループ所有権をApacheグループに変更します。
$ sudo chown -R ec2-user:apache /var/www
グループの書き込み許可
次に下記コードでグループの書き込み許可をします。
$ sudo chmod 2775 /var/www
ディレクトリ許可を変更
さらに、下記コードで/var/www とサブディレクトのディレクトリ許可を変更。
$ find /var/www -type d -exec sudo chmod 2775 {} \;
これでユーザー(ec2-user)への書き込み権限の割り当ては完了です。これでec2-userから/var/www配下への書き込みが可能になります。
Laravelのインストール
さて、ここから本題のLaravelインストールになります。今回は現時点での安定バージョン5.4をインストールしていきたいと思います。
/var/wwwへ移動
まず下記コードでLaravelのインストール先である「/var/www」へ移動します。
$ cd /var/www
mbstringとpdoのインストール
実際にLaravelをインストールする前にLaravelでは下記のモジュールが必要になるのでyumを使ってインストールします。なお、ここではPHPのバージョンが7になりますので、モジュールもそのバージョンに合わせてインストールします。
- mbstring
- pdo
$ sudo yum install -y php70-mbstring php70-pdo
Composerのインストール
また、LaravelのインストールにはComposerが必要になりますのでインストールします。
$ curl -sS https://getcomposer.org/installer | php
Composerにパスを通す
次にComposerにパスを通します。こちらは好みの問題なので別に必須ではありません。
$ sudo mv composer.phar /usr/local/bin/composer
下記コードでパスの確認をします。(/usr/local/bin/composerと表示されれば正常です)
$ which composer
さらに、下記コードでComposerのバージョンも確認しておきましょう。正常であればインストールされたバージョンが表示されます。
$ composer -V
Laravel5.4のインストール
これで本当にLaravelをインストールする環境が整ったので、下記コードでLaravel本体(今回はバージョン5.4)をインストールします。下記コードのプロジェクト名の箇所に好きな名前をつけてください。また、インストールには数分かかる場合があります。
$ composer create-project --prefer-dist laravel/laravel [プロジェクト名] "5.4.*"
ドキュメントルートの変更
インストールが完了したら今度はドキュメントルートを指定します。Laravelではプロジェクト内のpublicディレクトリをドキュメントルートに指定してあげる必要があるので、Apacheのhttpd.confを編集していきます。
$ sudo vi /etc/httpd/conf/httpd.conf
上記コードでhttpd.confを開いたら、「DocumentRoot “/var/www/html”」の箇所を「DocumentRoot “/var/www/プロジェクト名/public”」に変更します。
.htaccessの有効化
さらに、Laravelでは.htaccessを利用するので下記コードをhttpd.confに追記します。
AllowOverride All
Apacheの再起動
httpd.confの変更を有効化するためにApacheを再起動します。
$ sudo service httpd restart
パーミッションの変更
最後にLaravelではstorageディレクトリとbootstrap/cacheディレクトリのパーミッションを変更する必要があるので下記コードで変更します。
$ sudo chmod -R 777 /var/www/[プロジェクト名]/storage
$ sudo chmod -R 775 /var/www/[プロジェクト名]/bootstrap/cache
これで全て完了です。ブラウザからアクセスするとLaravelのインストールが確認できると思います。
まとめ
以上、今回はAWSにLaravelをインストールする際の手順を備忘録も兼ねて紹介させていただきました。
それでは今回はここまで!また!
この記事のまとめ
- AWSにLaravel5.4をインストール