2012-03-10 10 views
11

मैं वर्तमान में ओएस एक्स पर सब्लिमे टेक्स्ट 2 के लिए कुछ प्लगइन्स विकसित कर रहा हूं और मैं उन्हें क्रॉस प्लेटफ़ॉर्म बनाना चाहता हूं, जिसका अर्थ है कि मुझे यह पता लगाना है कि php.exe इंस्टॉल है या नहीं।विंडोज़ पर php.exe के पथ का निर्धारण कैसे करें - डिफ़ॉल्ट पथ खोजें?

अभी मैं अजगर, जो स्पष्ट रूप से केवल ओएस एक्स और लिनक्स पर काम करता है में /usr/bin/php फोन:

phppath = '/usr/bin/php'<br> 
pluginpath = sublime.packages_path() + '/HtmlTidy/tidy.php'<br> 
retval = os.system('%s "%s"' % (phppath, scriptpath)) 

लेकिन विंडोज पर, वहाँ php.exe के लिए कोई definitve डिफ़ॉल्ट पथ हो रहा है। जितना अधिक मैं इसके लिए गुस्सा आया, उतना अधिक संभावनाएं दिखाई गईं। अब तक मुझे लगता है कि मैं अस्तित्व के लिए निम्नलिखित रास्तों में से प्रत्येक की जाँच करने के लिए होगा:

c:\php\php.exe 
c:\php5\php.exe 
c:\windows\php.exe 
c:\program files\php\php.exe 
c:\wamp\bin\php\php5\php.exe 
c:\xampp\php\php.exe 

पहले से ही काफी एक संग्रह है यही कारण है, लेकिन क्या मैं के लिए पूछ रहा हूँ या तो एक पूरा सब possibilties कवर सूची है - या इसे समझने का एक और तरीका यह है कि प्रत्येक संभावित पथ की जांच के रूप में मजबूत होना चाहिए।

तो यदि आपके पास इन जगहों के अलावा किसी अन्य स्थान पर php.exe स्थापित है, तो कृपया अपने पथ के साथ एक टिप्पणी छोड़ दें और मैं इसे उपरोक्त सूची में जोड़ दूंगा।

इसके अलावा, php.exe और php-cli.exe प्रतीत होता है। मुझे लगता है कि प्रत्येक संभावित पथ को लूप करना ठीक होगा, php-cli.exe के लिए पहले जांचें, फिर php.exe की जांच करें और पहला मैच लें। क्या यह सही है या क्या कोई बेहतर अभ्यास है?

+2

मैं सिर्फ विंडोज पथ में इसके लिए खोज होगा, और फिर अगर यह नहीं है, तो उपयोगकर्ता यह के लिए संकेत । आपकी सूची कभी पूर्ण नहीं हो सकती है। और, यदि उपयोगकर्ता के पास php.exe के एकाधिक पथ हैं तो क्या होगा? मेरे पास अभी 5 या 6 php.exe है। – Corbin

+3

'PHPRC 'पर्यावरण चर के लिए एक नज़र डालें। इसमें निर्देशिका है जहां 'php.exe' स्थित है। यह अक्सर विंडोज सिस्टम पर उपलब्ध है। – hakre

+0

आप रजिस्ट्री को खोजने में सक्षम हो सकते हैं, लेकिन मैं इस पर कोई विशेषज्ञ नहीं हूं इसलिए मैं यह नहीं कहूंगा कि कैसे। – aquavitae

उत्तर

25

यदि उपयोगकर्ता ने PATH सिस्टम में PHP के बिन फ़ोल्डर को परिभाषित किया है तो आपको यह जांचने के लिए php -v को आजमाकर निष्पादित करने में सक्षम होना चाहिए।

आप php निष्पादन और लक्ष्य प्रणाली का पूर्ण पथ प्राप्त करने के लिए चाहते हैं, तो Windows 2003 या बाद में है (ताकि Vista, और 7) तो आप WHERE आदेश, यानी इस्तेमाल कर सकते हैं:

C:\>where php.exe 
C:\Program Files (x86)\WAMP\bin\php\php5.3.5\php.exe 

इसके अलावा संभावित रूप से संबंधित प्रश्न देखें: Is there an equivalent of 'which' on the Windows command line?

तुम सच में उपयोगकर्ता के कंप्यूटर पर किसी भी फ़ाइल खोजने के लिए बेताब हैं, तो आप एक find के बराबर क्रियान्वित करने की कोशिश कर सकते हैं - लेकिन यह वाला slooow हो रहा है!

C: && cd \ && dir /s /b php.exe 
+1

मुझे कैसे पता नहीं था कि विंडोज ने "कहां" आदेश जोड़ा था? – Kibbee

+0

'जहां' मेरा 'php.exe' नहीं मिला है। वास्तव में यह केवल पाथ और वर्तमान निर्देशिका में दिखता है। – Kos

+0

@ क्या आप हमें बता सकते हैं, जहां * आपका * php.exe वास्तव में है? – Matt

4

PHP 5.4 और बाद में, आप PHP_BINARY स्थिरांक का उपयोग कर सकते हैं।

+0

हम सभी के लिए वहां कोई नोबियां नहीं हैं, यह उपयोगी होगा अगर इसे लंबे स्पष्टीकरण के साथ अपडेट किया गया था। –

+0

'PHP_BINARY गूंजें; 'लेकिन यह मुझे लिनक्स पर कुछ भी नहीं दे रहा है। –

+0

मेरे मामले में यह सी: \ xampp \ apache \ bin \ httpd.exe देता है जो फ़ाइल निष्पादित नहीं करता है, जबकि C: \ xampp \ php \ php.exe – ymakux

-1

कोशिश

echo PHP_BINDIR; 

यह काम करता है, मैं php के साथ के रूप में MacOS पर यह परीक्षण किया 5.6

+0

पर कुछ भी नहीं दिखाता है प्रश्न विंडोज़ मैक के बारे में है । यह – Ryall

+0

काम नहीं करता है। अपने अनुभव साझा करने के लिए धन्यवाद। आपने किस सिस्टम कॉन्फ़िगरेशन पर कोशिश की? PHP प्रश्नोत्तरी और इतने पर ... –

संबंधित मुद्दे