ザ・サイベース心動く、デジタルデータを創造する。pushで開発環境や本番環境へ、gitのリポジトリから自動デプロイ(アップロード)する方法を紹介してみます。git管理しているファイルの一部を書き換えてみて、commit後pushします。プロから直接学べるプログラミングスクールの紹介!PHPコースあり!よくあるサーバーへのファイルアップロード手順これまで、様々なWeb制作案件や、ソーシャルゲームの開発に携わらせてもらいました。幾つかの開発現場で、サーバーへのファイルアップロードをおこないましたが、こんな感じの手順が多かったように思います。FTP(SFTP)で直接アップロードなんだかんだ、FTP(SFTP)が一番主流でした。自分のPCなど、ローカルな環境上で開発するか、サーバー上の開発環境で直接作業するかはエンジニアそれぞれでしたね。vimとか得意な人は、割とサーバー上のファイルを直接編集していた気がします。開発が完了すると、開発環境で動作・表示テストなどをおこなって本番環境へとファイルアップロードするわけですが、どのファイルをいじったかメモをとったり、もしくはサーバー上のファイルのタイムスタンプを見て、この日時以降のファイルをアップするといった感じで本番環境へとファイルアップロードしますよね。...でもこれ、かなり危険!!絶対にファイルのアップロードミスが発生しますよね。アップするファイルが漏れていたり、何らかのミスで、ファイルを上書きできていなかったり。共同作業だとしたら、誰の本番アップ作業によるミスが原因なのか分かりづらかったように思います。ファイルの最終編集者や、アップロード担当者をちゃんと管理していないと、ミスしても言い逃れできちゃいますよね。共同作業で、SVN(Subversion)がよく使われるようになって、誰がどんな作業をおこなったか記録されるとともに、ファイルのマージをおこないやすくなりました。少人数のスタートアップ企業とか。Linuxのrsyncコマンドでファイルを同期Linuxにちょっと詳しいエンジアがいたり、インフラ担当者がいるような現場では、開発サーバーのファイルと本番サーバーのファイルのタイムスタンプなどの差分をチェックして、同期できるようなバッチファイルを用意してくれていました。開発環境にはFTPアップロードをして開発しますが、本番環境へはFTPを繋がず、ターミナルで開発環境のサーバーにSSH接続して、rsyncコマンドを使って本番反映します。SVNや、最近ではGitでバージョン管理はしているものの、やはりFTPソフトでアップロードするという手順があると、実はバージョン管理ファイルと開発環境のファイルで差分があったり、アップロード漏れがあったなんていう自体になっている可能性があります。pushしたらサーバーに自動デプロイ(アップロード)するという仕組みです。最近は全くSVNを使わなくなったので、同じようなことができるかは知りません。pushが便利なので続いて紹介します。pullすることで本番反映完了という仕組みになっていました。これなら、git管理したものがそのまま開発環境や本番環境へと反映され、差分が生まれない仕組みとなりますよね。素晴らしいです!今はファイルアップロードをこういうふうにgitから直接できるような開発体制になっている会社や開発環境が多いんですかね??FTPソフトは使わないほうが、極力安心ですね。pushでサーバーへ自動アップロードできるとことの快適さ、安心感を知ってから、自分の開発環境にも導入してみたいと思ったんですが、いかんせん僕は自前サーバーすら用意できないようなにわかエンジニア。gitは「Bitbucket」、サーバーは「さくらインターネット」のレンタルサーバーを使ってWebサイトの開発をしています。pushして、さくらインターネットのサーバーに自動デプロイできたらのになーと思い情報を調べたところ、どうやらできるということが分かり、今ではどの開発にも取り入れるようにしています。誰か同じ仕組みを使ってみたい人がいれば参考になると思うので、手順を以下に書いてみます!Bitbucketに登録してリポジトリを作るGitが、おもしろいほどわかる基本の使い方33〈バージョン管理、SourceTree、Bitbucket〉KindleAmazonで見る楽天で見るYahooショッピングで見るBitbucketはGitHubと同じようなサービスと思ってもらえればいいのですが、リポジトリを全世界に公開して...とか、やらないようなシャイなエンジニアさんにはちょうどいいサービスです。GitHubもプライベートリポジトリは作れると思いますが、非公開でも5ユーザーまで共有無料、リポジトリ作成制限がないという点でBitbucketのほうが使い勝手がいいように思います。gitのGUIツール「SourceTree」を出している会社なので、ソフトとの親和性もいい感じです。git」など、gitのGUIツールが多くありますが、Macは少なく、SourceTreeが綺麗で使い勝手も優れていて、個人的には一番良いのではないかと思います。Bitbucketに登録していない人は、登録後リポジトリを作り、SourceTreeを使って初回分をpushします。「bitbucket-sync」をサーバーにアップロードするalixandruさんという方が作った、「bitbucket-sync」というPHPで作られたプログラムがあります。これを利用して、レンタルサーバーにgitの自動デプロイを行います。仕組み的には、サーバーでgitのリポジトリからファイルの差分を自動的にFTPアップロードしてくれるというものになります。「bitbucket-sync」をダウンロードhttps://bitbucket.org/alixandru/bitbucket-sync/downloads「alixandru-bitbucket-sync-xxxxx.zip」といったzipファイルを解凍します。さくらインターネットのレンタルサーバー(確認したのはスタンダードプラン)に「bitbucket-sync」内のファイルをアップロード僕の場合はこんな感じの構成になっています。■さくらインターネットのディレクトリ/home/xxxx/www/example.com/home/xxxx/www/bitbucket「bitbucket-sync」をリネームして、「bitbucket」としてみました。「exxample.com」内が公開しているディレクトリとなります。pushを検知し、「exxample.com」ディレクトへと必要なファイルをアップロードします。「bitbucket」ディレクトリ内の「config.sample.php」を使い「config.php」ファイルを作成します。下記の設定変更をおこないます。'ここに適当な文字列でキーを入力します',git管理に対応するディレクトリを指定します。'/home/xxxx/www/example.com',);「」を実行して、エラーがでないかどうかを確認します。失敗した場合は、サーバーの「/bitbucket/commits」ディレクトリ内に「failed-commit-xxxxxx」といったログファイルが記録されていないか確認してみてください。生成されている位場合は、Bitbucketのユーザー名やパスワード名などに間違いがないか確認してみてください。service」のプルダウンから「POST」を選択後、「http://example.com/bitbucket/gateway.php?key=xxxxx」のようにURLを入力します。ここでのkeyは、先ほどサーバーにアップして設定した「config.php」内のkeyを使用します。Bitbucketの画面は日本語翻訳が進んだり、変更があったりするので度々変わるので、キャプチャ画像と違っているかもしれません。将来、このPOST設定(webhook)できる画面は別の画面となる可能性もあるようですね。git管理しているファイルの一部を書き換えてみて、commit後pushします。FTPでファイルアップロードするため、少し時差がありますが、エラーが発生していなければ、PUSHしてから数秒後、サーバー側のファイルも変更されると思います。まとめgit管理しているファイルが、そのままレンタルサーバーにアップロードできたらいいなと思っていたらできちゃいました!僕はさくらインターネットのスタンダードプランでbitbucket-syncを使っていますが、他のサーバーでも使えたりしたら、是非twitterなどでご連絡ください!動作が確認できたサーバーを追記していければいいなーなんて思っています。いやな梅雨時ですが、gitを使った自動デプロイで、快適な開発生活を送りましょうー!プロから直接学べるプログラミングスクールの紹介!PHPコースあり!Webデザインスクールの「WebCamp」が手がけるママのためのWebデザインコース1ヶ月の短期集中でWebデザイナーを目指せます。仕事復帰を希望する主婦やママさんにオススメです。【参考記事】WebCampなら1ヶ月の短期集中でWebデザイナーを目指せる自己流でプログラミングを覚えようとすると、環境設定でつまづく、書いたプログラムがなぜ動かないか解決できず、多大な時間を浪費してしまいがちです。担当の指導者(メンター)が付いてくれるTechAcademyなら、分からないことをどんどん質問して解決できます!コードレビューしてもらえるのも素晴らしい点ですね。行っており、フリーランス独立する道を探すこともできそうです。「独立・開業はちょっと...」という方へは、当社の制作案件をお手伝いして頂く道も開けます。サーバーこの記事が気に入ったらいいねしよう!最新記事をお届けします。SEOGmailの送信取り消し機能は今すぐ使ったほうがよい!RECOMMENDこちらの記事も人気です。SEO・ユーザ...サーバー2013.8.8.htaccessで特定のファイルやディレクトリのみBASIC認証を解除するABOUTこの記事を書いた人とみっち数年前までバンド活動してました。活動するよ!現在はブログを運営して暮らしています。サウンドクリエイター、Webクリエイター。)とし、現在は本庄市に住み法人化しました。6人で会社やってます。※自然の音からデスメタルまで聴きます。2018.05.16このブログの管理者とみっち数年前までバンド活動してました。活動するよ!現在はブログを運営して暮らしています。サウンドクリエイター、Webクリエイター。)とし、現在は本庄市に住み法人化しました。6人で会社やってます。※自然の音からデスメタルまで聴きます。