छोटा जवाब।
घबराओ मत! यदि आप इस बात से चिंतित हैं कि आपका अपाचे सर्वर किस PHP संस्करण का उपयोग कर रहा है, तो आउटपुट phpinfo()
हमेशा वह होता है जिस पर आपको ध्यान देना चाहिए। Apache PHP मॉड्यूल और PHP कमांड लाइन बाइनरी दो अलग-अलग चीजें हैं जो एक दूसरे के साथ हस्तक्षेप नहीं करती हैं।
वास्तव में आप विभिन्न पीएचपी संस्करणों को संकलित और लोड कर सकते हैं जिन्हें आप अपाचे के साथ काम करना चाहते हैं जब तक आप इसे ठीक से लोड करने के लिए अपाचे को समायोजित करते हैं। PHP कमांड लाइन इंटरफ़ेस कभी भी अपाचे पार्सिंग PHP पृष्ठों के मामले में नहीं आएगा।
PHP का कमांड लाइन संस्करण केवल कमांड लाइन के विशिष्ट कार्यों के लिए है और Apache के लिए PHP मॉड्यूल कभी भी स्पर्श, उपयोग या आवश्यकता नहीं करेगा।
लंबा जवाब।
आप यह कहते हैं:
मैं जानना चाहता था कि php
मैं किस संस्करण का उपयोग कर रहा हूं इसलिए मैंने मानक स्क्रिप्ट लिखी है:
phpinfo();
जो मुझे PHP संस्करण 5.6.10 देता है - मेरे आवेदन के लिए आवश्यक सही PHP संस्करण। जब मैंने टर्मिनल में कोशिश की:
php -i or php -v
यह मुझे PHP संस्करण 5.3.2 दिखाता है जिसकी मुझे आवश्यकता नहीं है।
कमांड लाइन से उपलब्ध PHP के संस्करण में मॉड्यूल के रूप में लोड किए गए PHP के संस्करण के साथ 100% कुछ भी नहीं है। ये पूरी तरह से अलग चीजें हैं।
इसलिए यदि आप इस बात से चिंतित हैं कि PHP का कौन सा संस्करण आपके वेब एप्लिकेशन का उपयोग कर रहा है, यदि phpinfo()
संस्करण 5.6.10 दिखाता है और वही है जो आप चाहते हैं / 100% ठीक है।
PHP का कमांड लाइन संस्करण पूरी तरह से अलग सिस्टम आइटम है। तो केवल एक चीज जो मायने रखती है वह है आउटपुट phpinfo()
।
यदि किसी कारण से आप अपाचे के साथ PHP के एक अलग संस्करण का उपयोग करना चाहते थे, तो आपको बस इतना करना होगा कि अपाचे PHP मॉड्यूल को कहीं और स्थापित किया जाए और आपके सिस्टम के Apache config में इस पंक्ति को एडजस्ट या एडजस्ट किया जाए:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
और बस मार्ग को समायोजित करें- libphp5.so
जो अपाचे PHP को पार्स करने के लिए उपयोग करता है - फिर अपाचे को पुनरारंभ करें और आप व्यवसाय में हैं।
उदाहरण के लिए, एक बिंदु पर मुझे PHP 5.35 पर चलने वाली उबंटू 12.04 मशीन पर उपयोग के लिए PHP संस्करण 5.1.6 को स्रोत से (जीडी लाइब्रेरी समर्थन के साथ) संकलित करना पड़ा। सर्वर के PHP मॉड्यूल लोडिंग फ़ाइल में यहां:
/etc/apache2/mods-available/php5.load
मेरे पास इस तरह की लाइनें थीं:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
ध्यान दें कि कैसे एक लाइन के लिए टिप्पणी की जाती है libphp535.so
और दूसरे के लिए libphp516-gd.so
एक असंबद्ध है? मैंने जो भी किया है उसका नाम डिफ़ॉल्ट PHP 5.3.5 libphp5.so
अपाचे मॉड्यूल का libphp535.so
नाम में संस्करण संख्या के साथ रखा गया है ताकि मैं इसे संदर्भ के लिए वहां रख सकूं और फिर PHP 5.1.6 (जीडी लाइब्रेरी समर्थन के साथ) मॉड्यूल का नाम दिया libphp516-gd.so
ताकि मुझे पता चले कि क्या है साथ ही है। इस तरह मेरे पास सिस्टम पर साइड-बाय-साइड दोनों उपलब्ध हैं।
और जैसा कि मैंने शुरू में ही कहा था- कमांड लाइन में उपयोग किए जाने वाले PHP संस्करण का अपाचे PHP मॉड्यूल से कोई लेना-देना नहीं है। तो आपके पास अपाचे PHP मॉड्यूल के विभिन्न संस्करणों की संख्या हो सकती है जो सिस्टम पर जाने के लिए तैयार है; बस एक विन्यास को समायोजित करें और अपाचे को पुनरारंभ करें और आप जो भी अपाचे का उपयोग करना चाहिए PHP संस्करण का उपयोग करने के लिए व्यापार में होना चाहिए।