2011-10-14 13 views
9

मुझे 1and1.com के साथ होस्ट किया गया है, और मैंने अपनी फ़ाइलों को .htaccess का उपयोग करके php5 के साथ पार्स किया है।मैं कमांड लाइन के लिए PHP संस्करण को कैसे मजबूर कर सकता हूं?

लेकिन यह केवल अपाचे में काम करता है, न कि कमांड लाइन में, जो सर्वर डिफ़ॉल्ट php4 पर डिफ़ॉल्ट है।

तो वर्तमान में मैं php5 के रूप में अपना कोड चलाने के लिए क्रॉन नौकरियां सेटअप नहीं कर सकता। कोई विचार?

उत्तर

9

यदि दोनों स्थापित हैं, तो आपको केवल प्रासंगिक PHP बाइनरी का उपयोग करके स्क्रिप्ट चलाएं।

उदाहरण के लिए

तो:

// Runs using the PHP binary located at /usr/bin/php 
* * * * * root /usr/bin/php -n "/path/to/script.php" 

या

// Runs using the PHP binary located at /var/php5 
* * * * * root /var/php5 -n "/path/to/script.php" 

सभी आप जानना चाहते हैं पीएचपी CLI बाइनरी से भरा फ़ाइल सिस्टम पथ है, और अपने कोड को चलाने के लिए प्रासंगिक एक कहते हैं।

1

वहां दो PHP निर्देशिकाएं होनी चाहिए और उनमें से एक डिफ़ॉल्ट होना चाहिए। अपने सर्वर की जड़ से php5 के पथ को खोजने का प्रयास करें और अपने क्रॉन नौकरी पर पूरा पथ का उपयोग करें।

+2

'whereis php' अपने PHP-स्थानों को खोजने में सहायता कर सकते हैं – Zombaya

+0

'कौन सी php' या' php5.5-cli' 1and1 कमांड लाइन के रूप में 'whereis' – Abinadi

3

आप की तरह खोल में सीधे PHP स्क्रिप्ट पर अमल कर सकते हैं:

#!/usr/bin/php 
<?php 

कि लाइन shebang कहा जाता है:

$ script.php 

आप द्विआधारी है कि यह में स्क्रिप्ट निष्पादित करेंगे निर्दिष्ट कर सकते हैं पहली पंक्ति है । लाइन आपके सिस्टम पर भिन्न हो सकती है, आपको उस स्क्रिप्ट के लिए उपयोग करने के लिए PHP सीएलआई बाइनरी के पूर्ण फ़ाइल सिस्टम पथ को जानने की आवश्यकता है।

यदि आप उस फ़ाइल को खोल में निष्पादित करते हैं, तो निर्दिष्ट बाइनरी का उपयोग किया जाएगा। क्रॉन के लिए वही।

यदि आप उस फ़ाइल को अपने वेबसर्वर के माध्यम से निष्पादित करते हैं, तो PHP उस पंक्ति को चुपचाप छोड़ देगा।

रूप में अच्छी तरह देखें:Features: Using PHP from the command line

0

मैं अंत में यह काम कर गया। समस्या कुछ गुना था।

सबसे पहले, इस्तेमाल किया जा रहा PHP एमएएमपी संस्करण के बजाय/etc/bin में था। मैं इसे बदलने और इसके बजाय एमएएमपी संस्करण का उपयोग करने में सक्षम था।

दूसरा, सीएलआई के माध्यम से PHP का उपयोग करने के लिए आपको निश्चित रूप से PHP के लिए पूर्ण पथ का उपयोग करना है और केवल php ही नहीं। अर्थात। अपने exec() कॉल में /MAMP/bin/php/php5.3.x/php का उपयोग करें। यह अब मेरे लिए काम कर रहा है।

आप यहाँ मेरी GIST की जाँच कर सकते हैं ... https: //gist.github.com/1861487

+0

नहीं है, आपको सीएलआई में चलाने के लिए php के लिए पूर्ण पथ का उपयोग करने की आवश्यकता नहीं है (एमएएमपी, एक्सएएमपीपी, और ओएसएक्स के स्टॉक इंस्टॉलेशन का उपयोग करके मेरे मैक पर टर्मिनल से php चला रहा है, मैं su हूँ इसका पुन:) आपके द्वारा किया गया कारण या तो था (आपको मिली त्रुटि के आधार पर): ए) आपके पास आपके पाथ एनवी वैरिएबल में बिन निर्देशिका नहीं है (जो मुझे हर बार पाती है), या बी) आपके पास एकाधिक संस्करण हैं PHP स्थापित किया गया था और पथ में पहला वाला वह नहीं था जिसे आप चाहते थे। पूर्व के लिए, आप php कॉल से पहले निम्नलिखित चलाकर पुष्टि कर सकते हैं: 'PATH = $ पथ:/एमएएमपी/बिन' – Anthony

+0

यह प्रश्न का उत्तर नहीं देता है। ओपी 1and1 के पर्यावरण के बारे में पूछ रहा था, जिसका एमएएमपी से कोई लेना देना नहीं है। – Abinadi

1

यह एक और दृष्टिकोण 1and1 पर कमांड लाइन से पीएचपी मजबूर करने के लिए है।आपके सर्वर पर ssh के साथ में

प्रवेश करें और एक नई फ़ाइल बनाना वहाँ में .profile कहा जाता है आप ssh के साथ पुन: निम्न पंक्ति लिखेंगे alias php='/usr/local/bin/php5' प्रवेश करें और php -v साथ php संस्करण की जांच आप देखना चाहिए संस्करण अब है 5।

10

https://community.1and1.com/using-php-composer-at-1and1/ के अनुसार, अपने रूट projet में .profile बना सकते हैं और पंक्ति जोड़ें:

alias php='/usr/bin/php5.5-cli' 

यह मेरे लिए काम करता है। SSH में प्रवेश करें और कार्य करें:

php -v 

परिणाम:

पीएचपी 5.5.32 (CLI) (बनाया: 15 फ़र, 2016 16:13:44)

+0

यह! अच्छा काम, डिकोटआउट। आपको दिन के लिए एक स्वर्ण सितारा मिलता है। – Abinadi

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

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