1

私はこのローカルリポジトリを持っています。変更を加えて実行します。

git add .
git commit -m "message"
git push -u origin master

私のgithubには2つのWebHooksセットアップがあり、1つはhttp://requestb.in URLにアクセスし、もう1つは同じフォルダー(外部からアクセス可能)にあるPHP実行可能スクリプト(755)にアクセスします。

PHPスクリプト:

<?php echo `git pull origin master`; 
// echo "works"; 
// echo `whoami` ?>

コメントされたテスト行は機能しているので、これはスクリプトパスと構文がOKであることの私の証明です。

ただし、変更をローカルからgithubリポジトリにプッシュした後、サーバー上のファイルをチェックしますが、何も起こりgit pull origin masterません。PHPスクリプトからのエコーが何もしないことは明らかです。

ルートとしてログに記録されたシェル(git pull origin master)でこれを実行すると、ファイルはリポジトリから最新バージョンで更新されます。

また、私が設定した2番目のフックであるrequestb.inからのフックは、githubからのリクエストを確認できるように機能します。

サーバー上の私のフォルダには適切な権限があり、外部からアクセスできます。私は必死で、これを機能させる方法がわかりません。

何が問題なのですか、どうすればこれを機能させることができますか?githubの管理パネルでWebHookを設定するにはどうすればよいですか、それともPHPスクリプトですか、権限の問題がありますか、何が問題になっていますか?!:O

ありがとうございました。

3つのコメントの後で更新:さらに数時間処理した後、WebHookが実際にphpファイルを起動しないことがはっきりとわかります。ルート「phptest.php」としてログに記録されたシェルで実行すると、次のようになります。

root@echo [/home/moove/public_html/dev/wert]# php hooh.php 
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 1), reused 3 (delta 1)
Unpacking objects: 100% (3/3), done.
From github.com:chrisdemetriad/wert
 * branch            master     -> FETCH_HEAD
Updating 0c67b85..89e4fdf
Fast-forward
 XXX.php |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
root@echo [/home/moove/public_html/dev/wert]# 

これが私に必要なものであり、サーバー上のファイルが更新されます。しかし、手動で行わないと、ファイルは更新されません。これは、phpスクリプトが原因である必要があります。動作する私の最新バージョン:

<?php echo `git pull origin master`;
4

0 に答える 0