具體環境是這個樣子的,代碼倉庫在oschina上面,和網站不在一個服務器上,只能是採用webhook這種方法,在網頁更目錄設置一個php文件,進行手動更新(不是每次都想自動更新)。
完整代碼以下php
<?php exec("git pull 2>&1",$out); var_export($out);
git的全局環境是執行的 C:\Program Files\Git\cmd\git.exe。須要自行檢查添加環境。git
exec("git pull ",$out); var_export($out);
用cmd執行git pull的時候至關完美,刷刷的就更新下來了,可是當執行這個代碼的時候發現返回的內容爲空,並且還tm的沒有更新下來,通過查閱資料,發現應該添加 2>&1
,
具體緣由以下:web
加上輸出重定向以後,有了第二個坑服務器
array ( 0 => 'Host key verification failed.', 1 => 'fatal: Could not read from remote repository.', 2 => '', 3 => 'Please make sure you have the correct access rights', 4 => 'and the repository exists.', )
竟然出現了這個問題,用exec執行不能讀取用戶目錄.ssh文件的公鑰。
又通過一番折騰,查閱資料,也借鑑這個哥們的答案,可是沒有解決個人問題
http://blog.csdn.net/thy38/ar...,
最後在這個哥們的博客的提示下
http://www.jianshu.com/p/a0e7...
開始查看哪一個.ssh文件下面沒有公鑰,最後用everything查詢.ssh文件ssh
最後發現第一個文件裏面沒有id_ras.pub,拷貝當前用戶的pub文件過去後,問題解決了。。網站
後記:僅發此文以幫助更多的人!spa