tech1分で読める

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;

RK

1997年生まれ

ITエンジニア

インフラ・SRE

PHPメモ:フレームワークの選び方とDeployerでのデプロイ