Windows 下用php exec執行git pull遇到的問題及解決方案

Windows下用php exec執行git pull遇到的問題及解決方案

具體環境是這個樣子的,代碼倉庫在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

clipboard.png
加上輸出重定向以後,有了第二個坑服務器


第二個問題

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

clipboard.png
最後發現第一個文件裏面沒有id_ras.pub,拷貝當前用戶的pub文件過去後,問題解決了。。網站


後記:僅發此文以幫助更多的人!spa

相關文章
相關標籤/搜索