ホーム › ブログ › PHP・Laravelの保守・バージョンアップ › PHP システムの引継ぎチェックリスト——前任者や開発会社から受け取る資料と権限

PHP・Laravelの保守・バージョンアップ

PHP システムの引継ぎチェックリスト——前任者や開発会社から受け取る資料と権限

結論から書くと、前任の担当者や開発会社と連絡が取れる状態での引継ぎでは、受け取るものの一覧を打ち合わせの前に渡し、受け取った後の確認までを、前任がいるうちに終える ことが大切です。前任が離れた後では、聞けば済んだことを調査で掘り起こすことになります。

この記事では、前任者がいない場合の調査と、開発会社と連絡が取れない場合の権限の回復は扱いません。それぞれ「前任者がいない PHP システムの引継ぎ調査、最初の1週間でやること」と「開発会社と連絡が取れなくなった PHP システムを引き継ぐ手順」で説明しています。

受け取るものは、打ち合わせの前に一覧で渡す

「何か資料はありますか」と聞くだけでは、前任がその場で思い出せないものが漏れるおそれがあります。先に一覧を渡し、項目ごとに「渡せる」「無い」「分からない」を書いてもらいます。「無い」と分かれば、作るか、後で調べて補うかを決められます。

ただし前任が開発会社なら、一覧を渡す前に、引継ぎの作業が今の契約に含まれるかを確かめます。 資料づくりや打ち合わせが契約の範囲外なら、別に見積が出ることがあります。

アカウント・ソースコード・環境で受け取るもの

アカウントと権限

共有のアカウントより、担当者用のアカウントを作ってもらい、パスワードは受け手が設定する ほうが、前任のアカウントを後で止められて安全です。

受け取るもの なぜ要るか 無いときは
ドメインと DNS(ドメインとサーバーを結ぶ設定)の管理画面、名義 期限が切れるとサイトもメールも止まる 前任がいるうちに名義変更を進める
サーバーとデータベースの管理画面、FTP・SSH(ファイル転送やサーバー操作の接続) 障害の確認、ファイルの取得 契約者の権限で追加してもらう
システムの管理画面の管理者 利用者や設定の変更 新しく作ってもらう
外部サービス(決済、メール配信、地図)の管理画面、契約名義と支払い方法、API キー(利用のための鍵) 切れると一部の機能だけが止まる 設定ファイルのキーと請求書から一覧にする
ソースコードの置き場(リポジトリ) 変更の履歴をたどれる 本番のファイル一式を最初の版にする

ソースコード

受け取るもの なぜ要るか 無いときは
本番で動いているソースコード 違うコードを直しても本番に反映されない 本番サーバーから取得する
本番に出ている版と、反映の手順 未反映の変更を見分け、同じ方法で修正を出せる 本番と突き合わせる(後述)
composer.lock(依存パッケージのバージョンの記録) 誰がセットアップしても同じバージョンが入る(Composer 公式) 本番の vendor(Composer が入れたライブラリ)を丸ごと保管する

環境

受け取るもの なぜ要るか 無いときは
PHP・データベース・Web サーバーのバージョン 検証環境を本番に揃える 自分で確かめる(下記)
設定ファイル(.env、.htaccess、php.ini) 本番にしかない設定を把握し、移転でも同じ状態を作る 本番から取得する(.env の値はメモやチャットに写さない)
定期処理(cron=決まった時刻に処理を動かす仕組み) 止まっても気づきにくい crontab -l とサーバーの管理画面で確かめる

PHP は php -v と php -m(拡張の一覧)で確かめます(PHP マニュアル)。ただし、コマンドラインの PHP は、Web の PHP と設定ファイル(PHP マニュアル)やバージョンが違うことがあります。Web 側は phpinfo()(PHP の設定を表示する関数)で確かめ、使ったファイルはすぐ消します。環境変数まで表示されるためです(PHP マニュアル)。

crontab -l は実行したユーザーの分しか表示しません(POSIX)。Laravel 8 以降なら、公式ドキュメントに載っている php artisan schedule:list の出力も受け取ります(Laravel 公式)。

文書・契約・進行中の作業で受け取るもの

文書

受け取るもの なぜ要るか 無いときは
仕様書、画面の一覧 正しい動きの基準になる 主な画面を操作してもらい、録画する
データベースの定義 データの修正や集計に要る 分かりにくい項目だけ聞き取る
運用の手順(日次・月次・年次) 担当者がいないと止まる作業が分かる 1年間の作業を月ごとに挙げてもらう
バックアップの有無と保存先、戻したことがあるか 壊れたときに戻せるかが決まる 引継ぎの前に自分で1回取っておく
障害の記録、未対応の不具合 前からの問題かを区別できる 分かっている範囲で書き出してもらう

契約と権利

受け取るもの なぜ要るか 無いときは
開発・保守の契約書 改修や他社への依頼ができるかが決まる 発注書や請求書を集め、前任に確かめる
ライブラリなどのライセンス(有償の購入記録を含む) 利用や改変の条件が分かる 購入の記録と composer licenses(ライセンスの一覧。Composer 公式)で確かめる

ソースコードの著作権は、契約で移す定めが無ければ、原則として作った側に残ります(著作権法第15条・第17条・第61条)。どちらにあるかは契約書の条項で確かめ、読み方の判断は法律の専門家に相談してください。

進行中の作業と課題

受け取るもの なぜ要るか 無いときは
作業中の改修と、本番に出たか 途中の変更を知らずに出さない 記録が無ければ、途中の作業を一覧にしてもらう
近く期限を迎えるもの(ドメイン、サーバー、SSL 証明書) 引継ぎの直後に期限が来ることがある 管理画面で更新日を一覧にする
利用者との約束、前任が気にしていた箇所 忘れられる約束や、壊れやすい処理が分かる 打ち合わせで聞き取る

パスワードや API キーの受け渡し方

  • メールやチャットの本文に平文で書かない。 暗号化したファイルと、それを開くパスワードを同じ経路で送るのも避けます。
  • 共有が要るものは、会社で管理するパスワード管理ツールで渡す。 .env の値も、この方法で別に受け取ります。
  • 受け取った後に変える。 その前に、使っている設定ファイルや定期処理を確かめます。

ただし Laravel の APP_KEY は、ほかのパスワードと同じ感覚で作り直さないでください。そのまま変えると、ログイン中の利用者はすべてログアウトされ、前の鍵で暗号化したデータも復号できなくなります。Laravel 11 以降の公式ドキュメントには、前の鍵を APP_PREVIOUS_KEYS に残して切り替える方法があります(Laravel 公式)。

受け取った後に確かめること

実際にログインできるか

すべての管理画面にログインし、管理者の権限があるか、2段階認証のコードや、更新・障害の通知メールが前任個人に届く設定になっていないかを見ます。

本番と受け取ったソースが一致するか

本番から取得したファイルと受け取ったソースを、GNU diff でディレクトリごと比べます(GNU diffutils)。違いが出たら、本番で直接直したものか、未反映の変更かを前任に確かめます。

# 内容が違うファイルと、片方にしか無いファイルを表示する(vendor などは除く)
diff -rq -x vendor -x storage -x .git /path/to/production-copy /path/to/received-source

受け取ったもので別の環境に立ち上がるか

受け取ったソースコード、設定、データベースのダンプ(中身を書き出したファイル。個人情報を含むなら扱いを決めてから)で、本番とは別の環境に立ち上げてみます。動かなければ、足りないものを前任に聞けます。聞いても分からなかったものは、引継ぎの後に調べて補います。h-system が行った引継ぎ調査では、期間は1週間前後で、典型的に判明する問題は、ドキュメントが無いことと、ローカルで環境を再現できないことでした。あくまで一例で、規模や構成で変わります。

h-system でできること

h-system では、他社や前任者が作った PHP・Laravel のシステムを、開発者本人が窓口から調査・実装まで直接お引き受けしています。資料がない状態からでも構いません。ソースコード、データベース、サーバー環境を確認して現状を整理し、構成図、リスク一覧、改修見積のうち必要なものを、調査の範囲に合わせてご報告します。初回のご相談と概算のお見積りは無料で、詳細な調査は有償です。範囲と費用は着手前にご案内します。

TOP