कैसे निर्धारित किया जाए कि किस PHP का उपयोग किया जा रहा है?


10

कैसे निर्धारित किया जाए कि किस PHP का उपयोग किया जा रहा है?

उदाहरण के लिए, अगर वहाँ हैं /usr/local/bin/phpऔर usr/local/bin/php5, मुझे कैसे पता चलेगा कि मेरी PHP लिपियों में से किसका उपयोग किया जा रहा है?

जवाबों:


11

यदि आप PHP CLI का उपयोग कर रहे हैं, तो थियो शेल कमांड्स का उपयोग करने का प्रयास करें (मैं मान रहा हूं कि आप यहां लिनक्स का उपयोग कर रहे हैं)

which php - will locate the php executable (this should be the default php used by you)
whereis php - The first path displayed will be the location of the php executable
echo $PATH - will print a list of paths separated by ":" where the system looks for commands

यदि आप PHP को Apache मॉड्यूल के रूप में उपयोग कर रहे हैं तो phpinfo () आपको प्रयुक्त php संस्करण और php विन्यास फाइल को बताएगा, न कि php पथ को । यदि आपके पास php निष्पादन योग्य के 2 संस्करण हैं तो यह आपकी मदद करेगा। अगर वे एक ही संस्करण हैं तो यह वास्तव में कोई फर्क नहीं पड़ता कि कौन कौन है :)

यदि आप php संस्करण का पता लगाना चाहते हैं, तो php -v CLI संस्करण को CLI और स्थापित किए गए किसी भी Zend मॉड्यूल में प्रिंट करेगा।

यदि आप शामिल आईआई फाइलों का पता लगाना चाहते हैं तो php --ini php मॉड्यूल द्वारा लोड की गई आईआई फाइलों की वें सूची को प्रदर्शित करेगा (यह सीएलआई संस्करण के लिए लागू होता है)।


सभी इनपुट्स के लिए धन्यवाद। जाहिर है, whichकमान वह है जो मुझे चाहिए।
रैंडेल

@ रेंडेल - उपयोग न करें which; command -vइसके बजाय का उपयोग करें । यह भी देखें कि क्या कोई प्रोग्राम बैश स्क्रिप्ट से मौजूद है या नहीं

7

बस एक साधारण स्क्रिप्ट जोड़ें

<?php phpinfo(); ?>

यह phpउपयोगकर्ता के लॉगिन से नहीं चलेगा ; और जरूरी नहीं कि अपाचे द्वारा इस्तेमाल किया गया php?

5

मान लें कि आप वेब सर्वर के माध्यम से उपयोग कर रहे हैं:
आप निम्न फ़ंक्शन को स्क्रिप्ट में रख सकते हैं:

<?php 
phpinfo(); 
?>

यदि यह काम नहीं करता है, तो यह हो सकता है क्योंकि यह फ़ंक्शन php.ini में अक्षम है। ऐसा अक्सर सुरक्षा के लिए किया जाता है। अगर ऐसा है, तो आपके php.ini में एक लाइन होगी:

disable_functions = phpinfo

यदि यह मामला है, तो इसे अस्थायी रूप से बदल दें

disable_functions =

यदि आप शेल लिपियों के लिए php का उपयोग कर रहे हैं:

  1. शीर्ष पर 'शेबंग लाइन' होनी चाहिए, कुछ इस तरह

    #! / usr / स्थानीय / बिन / php -q

  2. क्या आप सुनिश्चित हैं कि एक दूसरे के लिए एक आकर्षक लिंक नहीं है? करना

    ls -l / usr / लोकल / बिन / php

  3. ;-)


5

कमांडलाइन से भी:

$ php -v

PHP 5.2.6-3ubuntu4 के साथ सुहोसिन-पैच 0.9.6.2 (cli) (निर्मित: मार्च 31 2009 02:11:31) कॉपीराइट (c) 1997-2008 PHP ग्रुप Zend इंजन v2.2.0, कॉपीराइट (c) 1998- 2008 Zend टेक्नोलॉजीज


यह phpउपयोगकर्ता के लॉगिन से नहीं चलेगा ; और जरूरी नहीं कि अपाचे द्वारा इस्तेमाल किया गया php?

1
<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();
?>

0

यदि आप अपनी वेब-स्क्रिप्ट के बारे में बात कर रहे हैं, जो आपके अपाचे वेबसर्वर द्वारा कहे गए हैं और PHP को अपाचे मॉड्यूल के रूप में कॉन्फ़िगर किया गया है, तो इसका जवाब कोई नहीं है।

आपके प्रश्न में आपके द्वारा बताए गए स्थान कमांड लाइन स्क्रिप्ट दुभाषियों हैं जिन्हें शेबंग नोटेशन द्वारा बुलाया जाएगा

 #!/usr/local/bin/php

आपके php- कमांड लाइन स्क्रिप्ट के शीर्ष पर

आपके द्वारा बताए गए दुभाषियों को आप अलग-अलग कह सकते हैं, क्योंकि उनके अलग-अलग नाम हैं

# php

कॉल करेगा / usr / स्थानीय / बिन / php और

# php5

कॉल करेगा / usr / स्थानीय / बिन / php5

यदि आप Apache मॉड्यूल के माध्यम से PHP का उपयोग करते हैं, तो उनमें से एक का भी उपयोग नहीं किया जाता है। यदि आप php के CGI- संस्करण का उपयोग करते हैं, तो इसे phpinfo () में दिखाना चाहिए; उत्पादन।



0
<?php echo shell_exec('which php'); ?>

यदि आपके पास शेल एक्सेस नहीं है तो भी यह काम करता है। ;-)


मुझे नहीं लगता कि यह वही है जो पूछने वाला व्यक्ति ढूंढ रहा था। यह केवल आपको बताता है कि PATH लुकअप में शेल पर्यावरण का उपयोग क्या होगा। यह जरूरी नहीं कि एक ही PHP है जो एक स्क्रिप्ट के साथ निष्पादित की जाती है।
मौसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.