PHP में EXEC से 'गिट पुल' चलाना

I'm trying to run a pull request from git using PHP's exec on windows running XAmpp. When running the script below with exec or system and try to access the file the page just never stops loading. I've check the file permissions of the directory and they're all 0777. & running git status runs fine. Not sure what the problem is.

<?php
ignore_user_abort(true);
set_time_limit(15);
exec('git pull origin master', $o);
echo implode("\n", $o);
?>

अपडेट करें कि खाते पर कोई पासवर्ड नहीं है:

C:\xampp\htdocs>git pull origin master
From github.com:************
 * branch            master     -> FETCH_HEAD
Already up-to-date.

C:\xampp\htdocs>

टर्मिनल से चल रहा है मुझे मिलता है:

C:\xampp\htdocs>php -f update.php
PHP Warning:  PHP Startup: ming: Unable to initialize module
Module compiled with build ID=API20090626,TS,VC6
PHP    compiled with build ID=API20090626,TS,VC9
These options need to match
 in Unknown on line 0

Warning: PHP Startup: ming: Unable to initialize module
Module compiled with build ID=API20090626,TS,VC6
PHP    compiled with build ID=API20090626,TS,VC9
These options need to match
 in Unknown on line 0
From github.com:*********
 * branch            master     -> FETCH_HEAD
Already up-to-date.
C:\xampp\htdocs>
2
जोड़ा संपादित
विचारों: 1
क्या गिट कुछ अन्य उपयोगकर्ता इनपुट, जैसे कि पासवर्ड पर इंतजार कर रहा है? set_time_limit() यहां सहायता नहीं करता है, क्योंकि यह केवल PHP निष्पादन समय पर लागू होता है।
जोड़ा लेखक Brad, स्रोत
आप टर्मिनल से PHP स्क्रिप्ट चला रहे हैं, हां? या, क्या आप इसे वेब से चला रहे हैं? यदि वेब से, मैं शर्त लगाता हूं कि आपकी गिट कॉन्फ़िगरेशन आपके पर्यावरण चर पर निर्भर है, जो किसी भिन्न उपयोगकर्ता (वेब ​​सर्वर के उपयोगकर्ता) से चलने पर भिन्न होती है।
जोड़ा लेखक Brad, स्रोत
इसे अपने टर्मिनल से चलाएं। देखें कि यह वहां काम करता है या नहीं।
जोड़ा लेखक Brad, स्रोत
पासवर्ड भी पोस्ट नहीं किया गया है।
जोड़ा लेखक Adam Merrifield, स्रोत
यह वेब से चल रहा है।
जोड़ा लेखक Adam Merrifield, स्रोत
पोस्ट अपडेट किया गया। मुझे यकीन नहीं है कि 2 चेतावनियां क्या हैं लेकिन यह सेकंड के मामले में चलती है और पूर्ण होती है।
जोड़ा लेखक Adam Merrifield, स्रोत
@DougOwings मुझे घातक मिलता है: सी: \ प्रोग्राम फ़ाइलें (x86) \ git/libexec/git-core \ git-pull का उपयोग बिना किसी पेड़ के उपयोग किया जा सकता है।
जोड़ा लेखक Adam Merrifield, स्रोत
@DougOwings - work-tree जोड़ना टर्मिनल में काम करता है लेकिन अभी भी वेब पर नहीं है
जोड़ा लेखक Adam Merrifield, स्रोत
@DougOwings लेकिन सभी फ़ाइलें 0777 हैं और मैं exec (mkdir test) और exec (del test) का उपयोग करके फ़ाइलों को बनाने और हटाने में सक्षम हूं।
जोड़ा लेखक Adam Merrifield, स्रोत
क्या आपने - git-dir = "सी: \ xampp \ htdocs" विकल्प का उपयोग करने का प्रयास किया है?
जोड़ा लेखक Doug Owings, स्रोत
@AdamMerrifield कोशिश करें - git-dir = "सी: \ xampp \ htdocs \ .git" --work-tree = "सी: \ xampp \ htdocs"
जोड़ा लेखक Doug Owings, स्रोत
@AdamMerrifield तो यह फ़ाइल अनुमतियों की समस्या की तरह लगता है।
जोड़ा लेखक Doug Owings, स्रोत

1 उत्तर

exec का उपयोग करने के बजाय, जो प्रक्रिया समाप्त होने तक प्रतीक्षा करता है, passthru का उपयोग करें और सुनिश्चित करें कि आपने आउटपुट बफरिंग अक्षम कर दी है। इस तरह आप तुरंत देखेंगे कि समस्या क्या है।

0
जोड़ा