😷
VercelでLaravelを動かす
最初にまとめ
「データベースを使わない規模のちょっとしたLaravelアプリを無料で動かして公開するならVercelはちょうどいい」
なんだかんだで動かせるのがPHPのメリット。
本格的に使うなら「Laravel公式のサーバーレス」Vaporを使ったほうがいい。
残りはここに書いてることとほとんど同じ。
動かし方
必要なファイルはvercel.json
とapi/index.php
これを参考にすればいいけどvercel.json
が少し違う。
動くVIEW_COMPILED_PATHはこれ。
"VIEW_COMPILED_PATH": "/tmp"
東京リージョンで使うには
"regions": ["hnd1"],
Databases
AWSのRDSなどが使える。
Authentication
DBが使えるならLaravelの認証が使えるはず。
Realtime
Pusherが使えそうだけどVercelで動かすLaravelではやらないことかも。
Cron
VercelのドキュメントではGitHub Actionsで定期的にリクエストを送るとか書いてるけど
GitHub Actions使うならGitHub Actionsでartisanコマンドを実行すればいいだけなのでLaravelでは関係ない話。
SESなどが使える。
File Storage & Uploads
S3などが使えるはず。
Vercelで難しそうなのはキューワーカーやHorizonをずっと動かし続ける部分?
個人的にはそこが一番重要。
デプロイ時のartisanコマンド
composer scriptsにvercel
を作ればデプロイ時に実行されるのでキャッシュやマイグレーションはこれでできそう。
"scripts": {
"vercel": [
"@php artisan config:cache",
"@php artisan route:cache",
"@php artisan view:cache"
]
}
セッション
databaseかcookieを使う。
Livewireを使うならセッションが必須。DBなしならcookieを使えばいい。
Discussion