https://github.com/ega4432/serverless-laravel
This is a sample repository of Serverless LAMP stack.
https://github.com/ega4432/serverless-laravel
aurora-serverless docker lambda lamp-stack laravel php serverless-framework
Last synced: 15 days ago
JSON representation
This is a sample repository of Serverless LAMP stack.
- Host: GitHub
- URL: https://github.com/ega4432/serverless-laravel
- Owner: ega4432
- License: mit
- Created: 2021-05-05T13:47:23.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-02-01T22:35:45.000Z (about 3 years ago)
- Last Synced: 2025-08-31T12:41:43.641Z (6 months ago)
- Topics: aurora-serverless, docker, lambda, lamp-stack, laravel, php, serverless-framework
- Language: PHP
- Homepage: https://zenn.dev/ysmtegsr/articles/187f95cffb7f68f36ccf
- Size: 3.45 MB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.ja.md
- License: LICENSE
Awesome Lists containing this project
README
# Serverless Laravel
[](https://github.com/ysmtegsr/serverless-laravel/actions/workflows/release.yml)


[ [English](https://github.com/ysmtegsr/serverless-laravel) | Japanese ]
サーバーレス LAMP スタックのサンプルリポジトリです。
サーバーレス LAMP スタックについて詳しく知りたいという方は下記の AWS ブログの記事を参照ください。
[新しいサーバーレス LAMP スタック – Part 1: 概要紹介 \| Amazon Web Services ブログ](https://aws.amazon.com/jp/blogs/news/introducing-the-new-serverless-lamp-stack/)
## セットアップ
[Laravel Sail](https://readouble.com/laravel/8.x/ja/sail.html) を使って環境構築を行います。Sail は、ローカルマシンで Laravel アプリケーションを開発するための Docker 環境を簡単に作ることができます。
```sh
$ curl -s "https://laravel.build/serverless-laravel" | bash
# If you have a component you want, add queries like this:
# curl -s "https://laravel.build/serverless-laravel?with=mysql,redis" | bash
```
## コンテナのビルド
```sh
$ ./vendor/bin/sail up -d
```
## サーバーレスのセットアップ
サーバーレス Laravel を構築する上で Bref ライブラリをインストールします。
Bref というのは、Laravel アプリケーションを AWS Lambda 上で実行する環境を簡単に作流ことができる優れものです。
[Serverless Laravel applications \- Bref](https://bref.sh/docs/frameworks/laravel.html)
```sh
# Add libraries
$ ./vendor/bin/sail composer require bref/bref bref/laravel-bridge
# Copy yaml of serverless.
$ ./vendor/bin/sail artisan vendor:publish --tag=serverless-config
```
## ローカルでの開発
よく使うであろうコマンドの実行方法を記載しました。
```sh
# migrate
$ ./vendor/bin/sail artisan migrate
# seed
$ ./vendor/bin/sail artisan db:seed
# install npm packages
$ ./vendor/bin/sail npm i
```
環境変数用の yml ファイルを serverless framework のスタック名でコピーします。
```sh
$ cp ./serverless-config/env/stack.yml.example ./serverless-config/env/.yml
```
Docker コンテナをカスタマイズしたくなったら、下記のように publish して Dockerfile を編集します。
```sh
$ ./vendor/bin/sail artisan sail:publish
Copied Directory [/vendor/laravel/sail/runtimes] To [/docker]
Publishing complete.
```
ローカル DB を直接 SQL を実行したい場合は、コンテナに入って確認することができます。(もちろん tinker を使う方法もあります。)
```sh
# Set variables
$ MYSQL_USER=
$ MYSQL_PASSWORD=
$ MYSQL_DATABASE=
$ docker-compose exec mysql bash -c 'mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}'
```
*Tips*
何度も使うコマンドは、エイリアスを設定しておくと良いでしょう。
```sh
# sail
alias sail="./vendor/bin/sail"
# bref
alias bref="./vendor/bin/bref"
```
## デプロイ
### 動的アプリケーション
[Serverless Framework CLI](https://www.serverless.com/framework/docs/providers/aws/cli-reference/) を使ってデプロイします。
マイグレーションやシードを行いたい場合は、[Bref CLI](https://bref.sh/docs/runtimes/console.html) を使って行ます。
```sh
$ seleverless deploy -v
# or
$ sls deploy -v
# migrate
$ ./vendor/bin/bref cli --region -- migrate
# seed
$ ./vendor/bin/bref cli --region -- db:seed
```
### 静的アセット
[AWS CLI](https://aws.amazon.com/jp/cli/) を使って、S3 バケットにデプロイします。
```sh
$ ./vendor/bin/sail npm run prod
$ aws s3 sync public/ s3:/// --delete --exclude index.php
```