यह पता करें कि क्या स्थापित PHP थ्रेडसेफ़ या नथुनेरेसेफ़ है?


90

मुझे कैसे पता चलेगा कि PHP का स्थापित संस्करण थ्रेडसेफ़ है या थ्रेड सुरक्षित नहीं है?

कृपया ध्यान दें कि मैं थ्रेडसेफ़ / नॉन थ्रेड सेफ इंस्टॉलेशन के बीच का अंतर नहीं पूछ रहा हूं। मैं यह पता लगाना चाहूंगा कि वर्तमान में क्या स्थापित है।



1
@ हईम थाट मेरा सवाल नहीं हैम। मैंने वह धागा देखा। मेरे पास पहले से ही इस सर्वर पर PHP स्थापित है। IIS के साथ काम कर रहा है। लेकिन, मुझे यह पता लगाने की आवश्यकता है कि इसे स्थापित करने के लिए किस सेटअप का उपयोग किया गया था ... थ्रेडसेफ़ सेटअप / नॉन थ्रेडसेफ़ सेटअप?
जोश

जवाबों:


166

एक phpinfo खोलें () और लाइन थ्रेड सुरक्षा के लिए खोजें । थ्रेड-सुरक्षित बिल्ड के लिए आपको सक्षम होना चाहिए ।

मुहम्मद गालबाना की टिप्पणियों के अनुसार आप भी इसका उपयोग कर सकते हैं:

  • विंडोज पर: php -i|findstr "Thread"
  • * निक्स पर: php -i|grep Thread

15
विंडोज पर: php -i|find "Thread"ऑन * निक्स:php -i|grep Thread
मुहम्मद गेलबाना

7
स्वयं पर ध्यान दें: php -i | find "Architecture"यह जांचने के लिए कि क्या यह x86 या x64 है
चेकसम

@ चेकphp -i | grep Architecture
इट्स

22

यदि आप कमांड लाइन का उपयोग करना पसंद करते हैं:

  • * Nix:

    php -i | grep -i "Thread"
  • खिड़कियाँ:

    php -i | findstr -i "thread"

यह आपको कुछ इस तरह देना चाहिए:

Thread Safety => enabled

या

Thread Safety => disabled

बहुत अच्छा विचार नहीं है, क्योंकि सर्वर द्वारा उपयोग किए जाने वाले PHP संस्करण ओएस (डिफ़ॉल्ट) द्वारा उठाए गए एक से भिन्न हो सकते हैं।
भैंस

4

एक नई PHP फ़ाइल बनाएँ और उसमें यह कोड डालें:

<?php
phpinfo(); ?>

फिर इस पेज को चलाएं और आपको PHP की सभी जानकारी मिल जाएगी। उस शब्द की खोज करें जिसे आप चाहते हैं, और यह दिखाएगा कि यह सक्षम है।


4

मुझे अभी php [version] नाम की फ़ाइल देखना आसान है। php के रूट फोल्डर में। इसका या तो php [संस्करण] .dll या php [संस्करण] ts.dll (थ्रेड सेफ़ के लिए खड़ा ts)। इसलिए, यदि आपके पास php7.0.10 स्थापित है, तो उस निर्देशिका पर जाएं जिसका यह नाम है और आपको php7ts.dll नामक एक फ़ाइल मिलेगी। यह पता लगाने का एक बहुत दुखद तरीका है, लेकिन यह काम करता है!


4

इसके बाद अविभाजित ZEND_THREAD_SAFEस्थिरांक है, जो PHP 4.3 के बाद से मौजूद है।

<?php

if (ZEND_THREAD_SAFE) {
    echo 'Thread safe';
} else {
    echo 'Not thread safe';
}

https://3v4l.org/tALKX


1

जांचें कि क्या आपका इंस्टॉल अपाचे मॉड्यूल या सीजीआई बाइनरी है। स्टैक ओवरफ्लो प्रश्न देखें PHP में थ्रेड सुरक्षित या गैर थ्रेड सुरक्षित क्या है?


मैं कैसे जांच करूं? आईआईएस द्वारा इसका उपयोग किया जा रहा है..लेकिन मैं कैसे पता लगाऊं कि यह कौन सा मॉड्यूल है? यह मेरा सवाल था ... मैं थ्रेडसेफ़ / नॉन थ्रेड सुरक्षित के बीच अंतर पूछने का मतलब नहीं है। मुझे यह जानना होगा कि स्थापित संस्करण थ्रेड सुरक्षित है या नहीं
जोश

ठीक है, मैंने अभी थोड़ी जांच की, और हाँ 2 बिल्ड उपलब्ध हैं; सुरक्षित और गैर-सुरक्षित। इस स्थापित गाइड के अनुसार IIS7 के लिए गैर-थ्रेड-सुरक्षित इंस्टॉल की सिफारिश की जाती है। यदि आप 'थ्रेड' शब्द कहीं भी प्रकट होता है तो क्या आप एक phpinfo () और se खोल सकते हैं?
Phliplip

हाँ, phpinfo में यह जानकारी थी ... बस यह पाया ... धन्यवाद @Pipliplip
जोश

1

एक स्क्रिप्ट से:

/**
 * @return boolean true if PHP is thread safe
 */
function isThreadSafe()
{
    ob_start();
    phpinfo(INFO_GENERAL);
    return preg_match('/Thread\s*Safety\s*enabled/i', strip_tags(ob_get_clean()));
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.