私たちは、linode上にVPSを持ち、gitHub上でコードをホスティングしています。 gitHubにプッシュすると、どのように設定すれば、自動的に私たちのlinodeサーバーにプッシュされますか? LinodeサーバーでPHPを使用しています。GitHubからサーバーへの自動プッシュ配信
ありがとうございました。
私たちは、linode上にVPSを持ち、gitHub上でコードをホスティングしています。 gitHubにプッシュすると、どのように設定すれば、自動的に私たちのlinodeサーバーにプッシュされますか? LinodeサーバーでPHPを使用しています。GitHubからサーバーへの自動プッシュ配信
ありがとうございました。
おそらくGitHub's post-receive hooksを使用します。
要約すると、GitHubは、誰かがリポジトリにプッシュすると、提供されたURLにPOSTします。あなたのlinode VPSで動く短いPHPスクリプトを書いて、POSTを受け取ったときにGitHubから引っ張ってください。
でこれを投稿するともっと役立つかもしれませんが、これはすばらしいと思いますが、どのようにPHPからgithubを引き出すのですか? –
私はいくつかのライブラリが存在すると仮定しますが、最悪の場合、理想よりも 'exec'の使用が多い –
余分な洞察力Kristianに感謝します! –
私は小さなGithub-Auto-DeployサーバーをPythonで書いています。設定ファイルに
あなたのライブラリは私自身の実装を開始するよう促しました。 https://github.com/danneu/captain-githook良いものよ、おい。 – danneu
私は私の独自の基本的な配置ツール(カールとよく似ていますが、PHPでは) dは自動的にrepoから新しい更新をプルダウンします - https://github.com/jesalg/SlimJim - 基本的にはgithub post-receive-hookを待ち受け、プロキシを使って更新スクリプトを起動します。
たぶん私は、コンテキストの外だが、私は私のコマンドラインなどからプッシュする場所を手動で選択することを好む:git push linode
は私Linodeのサーバにリポジトリのコンテナを作成し、これを行うには、ポスト受けるフックを作成しましたそれは、最後に私のフォルダをチェックアウト
が/var/repo/hooks/
touch post-receive nano post-receive chmod +x post-receive
mkdir /var/repo && cd /var/repo git --bare init
を作成コミットプッシュ
ポスト受信コンテンツ #!/bin/sh git --work-tree=/var/www/ --git-dir=/var/repo checkout -f
ローカルリポジトリに git remote add linode [email protected]<linode ip|domain>:/var/repo git push linode
あなたのコードは、今あなたがこのチュートリアルを参照することが
興味深い。有難うございます。私はLinodeの推奨に従って、@root userを使用しないでください。これには、git repoディレクトリと/ var/wwwに対するより緩い権限が必要です。私はここでそれを行う方法に関する関連情報を見つけました:http://stackoverflow.com/a/6448326/2112538 –
を展開されている:それが説明要するに
:
Automatically Updating Your Website Using GitHub's Service Hooks次のステップ:
の.git
フォルダに、以下の内容のサーバーを作成してください。 S SHキーのためのあなたのサーバが存在する
<?php `git pull`;?>
セットアップ。何かのように:
key. cat ~/.ssh/id_rsa.pub
GitHubでサービスフックを設定します。すべてが設定されている
http://your.domain.com/path/to/yourfile.php
:ウェブフックのURLを入力します。このファイルはGitHubにプッシュするたびにサーバー上のすべての作業を展開します。
http://serverfault.com/ – sashang