tech・1分で読める
PHPメモ:フレームワークの選び方とDeployerでのデプロイ
PHPの主要フレームワーク(Laravel/Symfony等)の立ち位置と、Deployerで最短デプロイする手順をメモ。
#php#framework#laravel#symfony#deployment#deployer#tips
PHPメモ:フレームワーク + Deployer
PHPのフレームワークについて(ざっくり)
用途別に「どれが正解か」は変わりますが、迷ったらこの理解が早いです。
- Laravel
- 向いてる: 速く作る、チーム開発、Webアプリ全般
- 特徴: エコシステム(認証/ジョブ/キュー等)が強い、情報が多い
- Symfony
- 向いてる: 長期運用・大規模、堅めの設計、コンポーネント活用
- 特徴: 部品としても使える(Symfony Components)、設計が堅牢
- Slim / Lumen(軽量系)
- 向いてる: 小さいAPI、最小構成で始めたい
- 注意: 「後で大きくなる」前提なら最初からLaravel/Symfonyでも良い
- CakePHP / Laminas など
- 向いてる: 既存資産・現場標準がある場合(採用実績や運用体制で決めるのが現実的)
選び方の目安
- 学習コスト < 開発速度 を優先 → Laravel
- 設計の堅牢性・長期運用 を優先 → Symfony
- 要件が小さく明確 → 軽量系(ただし将来の拡張は要注意)
Deployerについて
Deployer は、SSH でサーバーへ接続して リリースディレクトリ方式 でデプロイを回すためのツールです。
releases/にリリースを積むcurrentをシンボリックリンクで切り替える(ロールバックが速い)shared/に.envや永続ファイルを置く(リリースを跨いで維持)
1) インストール
プロジェクト内で入れるのがシンプル。
composer require --dev deployer/deployer
2) 最小の deploy.php 例(Laravel想定)
<?php namespace Deployer; require 'recipe/laravel.php'; set('repository', 'git@github.com:YOUR_ORG/YOUR_REPO.git'); set('keep_releases', 5); host('prod') ->setHostname('YOUR_SERVER_HOST') ->setRemoteUser('ubuntu') // 例 ->setDeployPath('/var/www/app'); // 例 // 例: shared に .env を置く(初回はサーバー側で配置しておく) add('shared_files', ['.env']); add('shared_dirs', ['storage']); add('writable_dirs', ['storage', 'bootstrap/cache']);
recipe/laravel.phpを使うと、artisan系のタスクや権限周りがある程度揃います(必要に応じて追加)。
3) 実行(よく使う)
./vendor/bin/dep deploy prod ./vendor/bin/dep rollback prod ./vendor/bin/dep status
4) 先にハマりがちなポイント
- SSH鍵: デプロイ元 → サーバー、サーバー → Git(private repo の場合)の両方
- 権限:
storage/とbootstrap/cache/の書き込み - .env: リポジトリに入れない。
sharedに置いてリンクする
おまけ:配列を1行で見やすく出す
ログ的に「とりあえず中身確認」するやつ。
<?php $data = ["name" => "rk", "skills" => ["php", "nextjs"]]; echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . PHP_EOL;