プログラミング

【GymCal】EC2でSQLiteを使う方法【Laravel×React】

この記事は約4分で読めます。

以前デプロイ用に準備したEC2環境にSQLiteを導入する方法をまとめます。

データベースは開発環境で使用したsqlite設定をそのまま使用できるので、環境変数を変えるのみの対応がメインです。

バックエンド: Laravel
フロントエンド: React

事前準備

以下の作業は完了しているものとします。詳細はこちらを参照してください。

  1. インスタンスの作成
  2. Nginxのセットアップ
  3. Reactのセットアップ
  4. Laravelのセットアップ

データベース接続先の設定

まずEC2上でsqliteファイルを作成します。

Zsh
# /home/ec2-user/gymcal/backend/database
$ touch database.sqlite

次に.envに作成したsqliteファイルのパスを設定します。

.env
DB_CONNECTION=sqlite
DB_DATABASE=/home/ec2-user/gymcal/backend/database/database.sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

データベースの準備

コマンドを実行してデータベースを作成します。

Zsh
$ php artisan migrate

   INFO  Running migrations.  

  2024_08_10_094553_create_elements_table ...................................... 2.07ms DONE
Zsh
$ php artisan db:seed

   INFO  Seeding database.  

  Database\Seeders\ElementsTableSeeder .......................................... RUNNING  
  Database\Seeders\ElementsTableSeeder ....................................... 18 ms DONE  

sqlite3で確認します。

Zsh
sudo yum install sqlite sqlite-devel

バージョンが確認できれば完了です。

Zsh
$ sqlite3 --version
3.40.0 2023-06-02 12:56:32 00a1256aa915eba233626a380102f8e74157cde64f0cd68731893b588c97alt1
Zsh
[ec2-user@ip-172-31-38-157 backend]$ sqlite3 database/database.sqlite 
sqlite> select * from elements;
1|1|1|倒立から下ろして(開脚前挙or脚前挙)支持(2秒)||1|1||
2|2|1|脚上挙支持(2秒)||2|1||

データが入っていることを確認できました。

動作確認

NginxとLaravelを起動します。

Zsh
sudo systemctl start nginx
cd backend
php artisan serve --host=0.0.0.0 --port=8000

APIの接続先をパブリックIPアドレスに修正してからReactをビルドします。

Zsh
cd frontend
npm run build
serve -s build

パブリックIPアドレスに接続すると以下のようにデータが取得できていることが分かります。

まとめ

以上がLaravelのSQLiteをEC2で使用する方法でした。

本番環境と開発環境でsqliteファイルを分けている点に注意が必要です。

コメント