2013-06-28 13 views
21

明らかなメリットがあるすべてのサイトをGitHubに移動したいと思っています。私はコマンドラインの大ファンではないので、私はGitHubが好きです。それは私がそれに触れることを避けることができるからです。 GitHubでリポジトリを設定し、それを自分のコンピュータと同期させるのは簡単です。 GitHubからWebサーバーに自動的にプッシュできるようにする必要がありますが、メインブランチに対してローカルに何かを更新してGitHubと同期させると、サイトにライブされます。主題をグーグルで見ると、ほとんどのテクニックのようにコマンドラインを必要とするか、かなり複雑に思えるようです。私は約15-20のサイトでこれをしたいと思っています(その多くは異なるクライアントからの異なるサーバーでホストされています)。私は自分のスキルの範囲内で、サイトごとに2〜3時間かかることのないオプションを探したい。誰でも最高の、これを設定する最も簡単な方法を知っていますか?複雑でGitHubからWebサーバーへのプッシュ

+5

最初の手順は、コマンドラインの使用方法を学習することです。あなたは非常に精巧なスキーマに向かい、コマンドラインを使わないと遠くに行かないでしょう。また、注意すべき点は、githubに入れないファイル(画像や文書にはソース管理が必要ないかもしれない)とデータベースを展開することです。魔法のようにはできません。探しているのは展開ツールです –

+0

OSXを使用するかどうかにかかわらず、このGUIベースの非常に便利なワークフローを考えることができます(これはWordPressのものにも使用します):http://eppz.eu/blog/push-git-to-ftp/ – Geri

+0

https://www.heroku.com/のようなPAASを使うと、簡単なプッシュで展開することができます。つまり、 'git push heroku master' –

答えて

8

部分は、すべてのGitHubリポジトリはリポジトリがにプッシュされるたびに、ウェブサーバと通信するオプションを有するwebhook on GitHub

あります。

つまり、あなたのWebサイトにはコミットの受信時にGitHubから送信されたJSONメッセージを受信するプロセスが必要です。 GitHubのプロジェクトは、私は同意していないパスフレーズでSSHキーを、お勧めします

<?php 

// Prevent accidental XSS 
header("Content-type: text/plain"); 

// Run the script 
if ($_POST['payload']) { 
    shell_exec("./pull.sh"); 
} 

こと:

あなたは(PHPサーバー用)auto.phpで、このwebhook-deployerのように、これらのリスナーの複数の例を見ることができます最初に(テストするため)
しかし、特にプライベートプロジェクトの場合は、ssh-agentを実行し、ssh鍵のパスフレーズを保護することをお勧めします。ヤーノシュcommentsとして

  • GitHubのリポジトリが公開されている場合、彼は一つも必要ありません。
  • リポジトリがプライベートである場合、彼はそれを必要としますが、これは軽く取られるべきではありません。可能であれば、彼は主要なエージェントを使用すべきである。
    これはあまりに複雑すぎると、パスフレーズなしで専用のSSH鍵を使用することができ、その鍵はデプロイメントPCから離れるべきではありません。
+1

なぜパスフレーズなしでSSHキーを推奨しますか? GitHubリポジトリが公開されている場合、彼は必要なものでもありません。レポがプライベートなら、彼はそれを必要としますが、これは軽く取られるべきではありません。可能であれば、彼は主要なエージェントを使用すべきである。それが複雑すぎる場合は、この展開のためのパスフレーズなしで専用SSH鍵を使用することができ、その鍵は展開PCから離れるべきではありません。 – janos

+0

@ヤノス非常に良い点。私は答えを見直し、あなたのポイントをそれに加えてより多くの可視性を持たせました。 – VonC

5

私はこのチケットは古いですが、この何とか、チェックアウトdploy.ioを見つける人のために知っています。 GitHub/Bitbucketからあなたのサーバーにあなたのレポを配備する目的で作られたホスト型サービスです。 SFTP/FTP/S3/Heroku/SSHコマンドなどをサポートしています。

免責事項:私はあなたがこのPHPスクリプトを見てみることをお勧めしますdploy.io

2

に取り組む:
https://github.com/JohannesHoppe/easy-git-deploy

(それはあなたのためのgitのクローン、gitのプル、Gitのプッシュし)

数年以来、私はそのスクリプトを使ってすべてのWordPressのインストールを管理しています。

ヒント:共有ホスティング環境を使用している場合、スクリプト制限よりも最初の実行が中断される可能性があります。その場合には、SSH経由でログインし、手動で最初のクローンの操作を行います。

ここ
git clone 'https://user:[email protected]//github.com/user/repo.git' 

また、手動でSSHキーのフィンガープリントを確認することができます。

第2のヒント:ディレクトリを.htaccess/.htpasswdファイルで保護する必要があります。

関連する問題