EC2インスタンスを立てる
前回の記事に引き続き、こちらを参考にEC2インスタンスを立てます。
参考:AWS EC2でWebサーバーを構築してみる
https://qiita.com/Arashi/items/629aaed33401b8f2265c
PHP7.2、PHP拡張を入れる
yumでPHPをそのまま入れると5.4と古すぎるバージョンが入ります。
LaravelはPHP7系(Laravel5.8ではPHP7.1.3以上)です。
$ sudo amazon-linux-extras install php7.2
$ sudo yum -y install php php-devel php-bcmath php-ctype php-json php-mbstring php-openssl php-pdo php-tokenizer php-xml php-zip
$ php -v
$ PHP 7.2.19 (cli) (built: Jun 12 2019 20:39:39) ( NTS )
$ Copyright (c) 1997-2018 The PHP Group
$ Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
参考:Amazon Linux 2でPHP7.2をインストールする
https://qiita.com/owlbeck/items/20f3e5402cb782f6291e
Composerを入れる
ComposerはPHPのパッケージ管理システムです。
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
$ composer --version
うまくインストールできているとこんな感じの表示です。
$ Composer version 1.9.0 2019-08-02 20:55:32
Laravel6.0を入れる
以下公式ドキュメントに従ってインストールします。
Laravel
https://readouble.com/laravel/6.0/ja/installation.html
$ composer global require laravel/installer
laravelインストーラが入ったのでパスを通します。
$ vi ~/.bashrc
以下追加し保存
export PATH="~/.config/composer/vendor/bin:$PATH"
.bashrcはターミナル次回起動時に反映されるので、即時反映させる。
$ source ~/.bashrc
$ laravel -V
コマンドが見つからない場合はパスが間違っているはずです。
成功すると以下のようなメッセージが出ます。
$ Laravel Installer 2.1.0
では、公式ドキュメントに沿ってblogというアプリケーションを作ります。
ホームディレクトリに置くのは気持ち悪いので、/var/www/に配置します。
$ cd /var/www
$ sudo chown -R ec2-user:apache /var/www/
$ sudo chmod -R 770 /var/www/
$ laravel new blog
$ chmod -R 777 /var/www/blog/storage
$ chmod -R 777 /var/www/blog/bootstrap/cache
※本来パーミッションやオーナーはec2-userや777じゃなく適切なものを指定すべきですが、ここでは動作を最優先にしているので割愛します。
Laravelインストーラのバージョンは確認しましたが、Laravel自体のバージョンも確認してみましょう。
$ php artisan -V
Laravel Framework 6.0.3
Laravel6.0系が入っていることが確認できました。
Apacheの設定変更
# vi /etc/httpd/conf/httpd.conf
DocumentRootで調べて書き換え。
また、そのディレクトリのAllowOverride Allを追記し保存します。
...
DocumentRoot "/var/www/blog/public"
...
<Directory "/var/www/blog/public">
AllowOverride All
</Directory>
Apacheの設定変更後は再起動。
# service httpd configtest
# service httpd graceful
これでアクセスした際にLaravelが表示されます。