0
1

More than 1 year has passed since last update.

Laravel(PHP)でCRUDアプリを作成し、AWSにデプロイする

Last updated at Posted at 2022-02-02

Laravelのversionについて

  • "8"を使用する

構成

  • Laravel
  • NGINX
  • MYSQL

機能要件

  • ユーザー登録 && ログイン
  • ユーザーCRUD
  • 記事CRUD
  • 他ユーザーのフォロー
  • フォローユーザー一覧
  • フォロワーユーザー一覧
  • 記事へのコメントCRUD
  • 投稿記事の検索機能

開発環境を構築する

  • ymlファイルにDockerの構成を記述
  • buildあとにコンテナ内でLaravel環境を構築
    • composer create-project --prefer-dist laravel/laravel {$APP_NAME}

Nginxの設定につまずく

  • css, js ファイルが上手く読み込めない → docker-compose.ymlのappのvolumesをbuild後に変更したために、ファイルの読み込みがうまくいかなかった

DBの要件定義

Users
id UUID
name VARCHAR
email VARCHAR
email_verified_at DATETIME
password VARCHAR
remember_token BOOLEAN
created_at TIMESTAMP
updated_at TIMESTAMP
Articles
id UUID
user_id UUID
title VARCHAR
category VARCHAR
content VARCHAR
created_at TIMESTAMP
updated_at TIMESTAMP
Comments
id UUID
user_id UUID
article_id UUID
content VARCHAR
created_at TIMESTAMP
updated_at TIMESTAMP
Likes
id UUID
user_id UUID
article_id UUID
created_at TIMESTAMP
updated_at TIMESTAMP
Follow_Users
id UUID
user_id UUID
following_user_id UUID
created_at TIMESTAMP
updated_at TIMESTAMP
  • UUID使用のためcomposer require goldspecdigital/laravel-eloquent-uuid:^8.0を追加する

機能を実装する

  • livewireを使ってみる
    • SPAのような動きができる(bladeテンプレートが使える)
  • 日本語化する
    • resource/lang/内に日本語化のファイルを配置する

error: Property ['{取得したい値}'] does not exist on this collection instance.

  • DBからのデータは、取得の方法に応じて、toArrayメソッド等を使用し変換する必要がある

AWSにデプロイする

  • Light Sailを使用する
    • インスタンス作成(LANP構成)
    • DNS作成
    • ディストリビューション作成
    • HTTPS化する
    • インスタンスにgit cloneする
    • /opt/bitnami/apache2/htdocs/配下にディレクトリを配置する
    • /opt/bitnami/apache2/conf/bitnami/bitnami.confを編集し、ディレクトリの階層を上記に修正する
    • bootstrapファイル等をbuildするためにnode.jsをinstallする
    • .envを編集する(ASSET_URLを追加し、https化したドメインを入力しasettsファイルが上手く読み込めるようにする)

POST時にブラウザで”保護されていない通信~”が表示されてしまう

  • app/app/Providers/AppServiceProvider.phpを編集する
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1