はじめに

皆様、こんにちは。
先日、予算等もろもろの事情でGCP => レンタルサーバに環境移行に携わったつくる人の川上です。
この時点で既にオチている気がしますが
いくつかの案件でレンタルサーバ使った案件を進めた時に
どうやっていたのかを共有したいと思います。

前提条件

今回共有する内容は以下の条件を要するレンタルサーバで有効になります。

  • 複数のDocument Root/バーチャルホストが使用可能
  • 複数のDB Schemaが使用可能

一般的なレンタルサーバの使い方

一般的なWEB製作のプロジェクトだと下記の使い方なんじゃないかなと思います。

  1. ローカル環境でソース修正(PHP/HTML等)
  2. ローカル環境で動作確認
  3. 本番環境に対し FFFTP/WinSCP等で対象ファイルを手動アップロード
  4. 本番環境で動作確認

過去IaaS使ったプロジェクトを行った自分としては

・ローカル環境で動作確認するとはいえ、本番環境に対して1発勝負的にファイルをアップロードする
・対象ソースが大量かつ複数のディレクトリにまたがる場合にアップロード漏れ/ミスが発生しそう
・本番環境が動かなかった + 対象ソースが大量な場合に、どのファイルを元に戻せば動くようになるのか分かりづらい

みたいな所が気になり、大変心もとない。

どうやったか

というわけで、今回は下記の様な開発プロセスで進めました。
フロントエンド部分を他のWEB制作会社さんと協業して行った事もあり
修正ソースを履歴管理する必要があったので git を使っています。

  • Document Root&バーチャルホストを 開発/ステージング/本番 環境の3つ用意
  • DB Schemaを 開発/ステージング/本番 環境の3つ用意
  • gitのブランチを develop/staging/master の3つ用意

※gitブランチに関しては所轄git-flowをベースにしてます。git-flowについて詳しくはこちらを参照して下さい。

イメージとしては下記の様な形にします。
※ ↓ドメイン、DocumentRoot、DB Schema の名称は説明用の名称です。

4864-001

また、セキュリティを考慮して以下の設定を行いました。

  • 開発/ステージング 環境にはベーシック認証を設定。
  • FTPのIPアクセス制限
  • WEB制作会社さんには開発環境用のFTP/DBの接続情報(ユーザ/パスワード)のみを共有

FTP・DBのユーザが複数設定出来るか否かに関して
今回のレンタルサーバが特殊だったのかもしれないので
他のレンタルサーバだとどうなのかは調べてから行って下さい。

でも問題が・・・

4864-002

の役回りでソースをステージングと本番環境に私が手動アップロード(FTP)していました。
対象ファイル自体はスプレッドシートで管理していましたが
はっきり言ってしんどいし、対象ファイルが多くなると・・・。

どうにかならないかなーとGoogle検索していた所

素敵なツールを見つけました。

その2 に続きます。