EC2上にLaravel環境を構築してみた(2/2)
前回の記事でプロジェクト作成直前までの構築を行った。
本記事では「プロジェクト作成→ユーザ認証導入」を実施して動作確認を行う
バージョンはこちら
Amazon Linux 2 | |
Apache | 2.4 |
MySQL | 5.5 |
PHP | 7.3 |
Laravel | 7.23.2 |
1. メモリ不足について
EC2インスタンスが「t2.micro」だと、プロジェクト作成時やログイン機能インストール時に
必ずメモリ不足を起こす(cannot allocate memory みたいな)。
そのため、プロジェクト作成時のみ「t2.medium」に変更することをお勧めします。
※t2.mediumの利用料金は一時間で7円程度です(最新の料金は調べてください)
※プロジェクト作成後に戻すのをお忘れなく!
↓ここから変更できる(インスタンスは停止/Stopしておく)
↓インスタンスタイプを変更せず、スワップ領域を作成する方法もあります
Laravel で Cannot allocate memory がでたときの対策 - Qiita
2. Laravel プロジェクトを作成する
Composerでプロジェクト作成
sudo chown ec2-user:ec2-user /var/www/html cd /var/www/html composer create-project laravel/laravel プロジェクト名 --prefer-dist
プロジェクトフォルダの権限変更
「プロジェクト名」は作成したものに変更する
sudo groupadd laravel sudo usermod -aG laravel ec2-user sudo usermod -aG laravel apache cd /var/www/html sudo chown -R ec2-user:laravel プロジェクト名 sudo find プロジェクト名 -type d -exec chmod 750 {} \; sudo find プロジェクト名 -type f -exec chmod 640 {} \; sudo chmod -R 770 プロジェクト名/storage/ プロジェクト名/bootstrap/cache/
ドキュメントルートを変更する(任意)
php artisan serve でテストするにはこのままでいいのだが、常時アクセスできるようにする場合は以下を実施する。
sudo vi /etc/httpd/conf.d/vhost.conf
以下をコピペする(サーバ名・プロジェクト名は各自の環境に変更する)
<VirtualHost *:80> ServerName hoge.example.com DocumentRoot "/var/www/html/プロジェクト名/public" <Directory "/var/www/html/プロジェクト名/public"> AllowOverride all </Directory> </VirtualHost>
以下を実行してサーバを再起動する
sudo shutdown -r now
アクセスしてみる
ひとつ前の「ドキュメントルートを変更する」を実施した人は「http://サーバ名」にアクセス。
※実施してない人はphp artisan serveを実行して(以下略
3. ユーザログインを実装する
無事にLaravelホーム画面が表示されたら、ログイン機能をインストールする。
データベース作成
最後の「laravel」はデータベース名。好きなものに変更してもよいです。
mysql -u root -p create database laravel; exit;
Laravel 側のDB用設定
以下のファイルを編集する
/var/www/html/プロジェクト名/.env
変更箇所は以下の通り
DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=設定したパスワード
さらに以下のファイルを編集する
/var/www/html/プロジェクト名/config/app.php
変更箇所は以下の通り
'timezone' => 'Asia/Tokyo', 'locale' => 'ja',
ログイン機能のインストール
以下のファイルを編集します。
/var/www/html/プロジェクト名/app/Providers/AppServiceProvider.php
2行、追加する
use Illuminate\Support\Facades\Schema; ←追加 ・・・ public function boot() { Schema::defaultStringLength(191); ←追加 }
以下でログイン機能が実装される
php artisan migrate curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - sudo yum install -y nodejs npm -v composer require laravel/ui php artisan ui vue --auth npm install npm run dev
Laravelのページをリロードすると、LoginとRegisterボタンが追加されている。
ユーザを登録したり、ログインして正常に動くか確かめる
以上!
おつかれっしたー
インスタンスタイプを変更してる人は、戻すのを忘れずに!