PHP थ्रेड सेफ और नॉन थ्रेड विंडोज के लिए सेफ


89

मैं विंडोज के लिए PHP डाउनलोड कर रहा हूं। मुझे वेबसाइट पर 2 विकल्प मिले।

  1. PHP थ्रेड सुरक्षित
  2. PHP गैर थ्रेड सुरक्षित

कृप्या निम्नलिखित प्रश्नों का उत्तर दें:

  1. दोनों के बीच क्या अंतर है? एक दूसरे के ऊपर फायदे और नुकसान क्या हैं?
  2. मैं एक ई-कॉमर्स वेबसाइट विकसित कर रहा हूं, जिसमें भारी ट्रैफिक होगा, जिसे अधिक अनुशंसित किया गया है और क्यों?


1
आप "भारी ट्रैफ़िक" से क्या समझते हैं और आप कैसे सुनिश्चित कर सकते हैं कि आप इसे प्राप्त करेंगे?
क्रेक

@ क्रैक- भारी ट्रैफ़िक का मतलब है कि कई-कई यूज़र एक निश्चित समय में वेबसाइट का उपयोग कर रहे होंगे। मैं उस पर यकीन क्यों नहीं कर सकता? इसमें कुछ गड़बड़ है?
सुमित

केवल उस "भारी ट्रैफ़िक" को कई तरीकों से परिभाषित किया जा सकता है, और कुछ लोगों के लिए जो भारी ट्रैफ़िक है, कुछ के लिए मध्यम या हल्का ट्रैफ़िक भी हो सकता है। यहां एक उपयोगी मीट्रिक पृष्ठ हिट / दिन / घंटा / मिनट, किसी भी प्रकार का उद्देश्य माप है।
दरार

जवाबों:


93

PHP प्रलेखन से:

थ्रेड सेफ्टी का मतलब है कि बाइनरी मल्टीथ्रेडेड वेबसर्वर संदर्भ में काम कर सकता है, जैसे कि विंडोज पर अपाचे 2। थ्रेड सेफ्टी प्रत्येक थ्रेड में एक स्थानीय स्टोरेज कॉपी बनाकर काम करता है, ताकि डेटा दूसरे थ्रेड से न टकराए।

तो मैं क्या चुनूं? यदि आप PHP को CGI बाइनरी के रूप में चलाना चुनते हैं, तो आपको थ्रेड सुरक्षा की आवश्यकता नहीं होगी, क्योंकि बाइनरी प्रत्येक अनुरोध पर लागू होती है। मल्टीथ्रेडेड वेबसर्वर, जैसे कि IIS5 और IIS6 के लिए, आपको PHP के थ्रेडेड संस्करण का उपयोग करना चाहिए।

तो यह वास्तव में उस तरीके पर निर्भर करता है जो आप PHP का उपयोग करना चाहते हैं:

  • अपाचे + LoadModule: थ्रेड सेफ
  • Apache + FastCGI: नॉन-थ्रेड सेफ
  • IIS: थ्रेड सेफ
  • IIS + FastCGI: गैर-थ्रेड सुरक्षित

PHP मैनुअल में अच्छे इंस्टॉलेशन निर्देश हैं

AFAIR FastCGI के साथ PHP चलाना बेहतर तरीका है, यह तेजी से प्रदर्शन करता है और अधिक बारीक सुरक्षा विन्यास के लिए अनुमति देता है।


11
यह पृष्ठ बताता है कि: "यदि आप IIS के साथ PHP का उपयोग कर रहे हैं तो आपको PHP के गैर-थ्रेड सेफ़ (NTS) संस्करणों का उपयोग करना चाहिए।" उत्तर बताने की तुलना में: "IIS: थ्रेड सेफ"
umutm

9
हां, और इसमें FastCGI का उल्लेख है। थ्रेड सेफ ISAPI (php5isapi.dll) का उपयोग करते समय होता है
क्रैक करें

3
गैर-थ्रेड-सुरक्षित विकल्प के साथ परेशान क्यों? यह पसंद है: यदि मैं एक सुरक्षित कार और एक गैर-सुरक्षित कार खरीदने के बीच चयन कर सकता हूं, तो मैं कभी गैर-सुरक्षित कार क्यों चुनूंगा? यह बेहतर प्रदर्शन करता है या कुछ और?
साइमन ईस्ट

4
@SimonEast NTS संस्करण में कुछ ओवरहेड मैनेजिंग थ्रेड्स हैं, जो पहले से ही वेबसर्वर द्वारा किए गए हैं, इसलिए प्रदर्शन को नीचा दिखाया जाएगा
ReZa

3
@SimonEast बिल्कुल। दो बार नौकरी करना पसंद है, एक बार PHP में और एक बार वेबसर्वर में
ReZa

2

त्वरित और सरल: यदि आप अपाचे का उपयोग कर रहे हैं तो अपनी Apache24 \ conf \ httpd.conf फ़ाइल को संपादित करें और "लोडमॉडल" के लिए खोजें। यदि आप देखते हैं कि आपका लोडमॉडल कुछ-कुछ जैसा संदर्भित कर रहा है:

LoadModule php7_module "e: /x64Stack/PHP/php7.1.9/php7apache2_4.dll"
AddHandler एप्लिकेशन / x-httpd-php .php
PHPIniDir "e: /x64Stack/PHP/php7.1.9"।

तब आप थ्रेड सुरक्षा सक्षम या TS - थ्रेड सुरक्षित संस्करण चाहते हैं

यदि आप सीजीआई के साथ आईआईएस या अपाचे का उपयोग कर रहे हैं तो एनटीएस स्वाद।

मैं कई ढेरों का उपयोग करता हूं और उन कई सर्वरों और PHP के संस्करणों के भीतर ताकि रास्ते / php या सर्वर संस्करणों को आपको फेंकने न दें।


0

क्रैक के अलावा, 5.4 के बाद से आप अंतर्निहित वेब सर्वर का उपयोग कर सकते हैं (यह अच्छा काम करता है!)।

चेतावनी यह वेब सर्वर अनुप्रयोग विकास में सहायता के लिए बनाया गया था। यह परीक्षण उद्देश्यों के लिए या नियंत्रित वातावरण में चलाए जाने वाले अनुप्रयोग प्रदर्शनों के लिए भी उपयोगी हो सकता है। यह एक पूर्ण विशेषताओं वाला वेब सर्वर होने का इरादा नहीं है। इसका उपयोग सार्वजनिक नेटवर्क पर नहीं किया जाना चाहिए।


13
आप जिस बारे में बात कर रहे हैं, उसमें कुछ प्रकार के संदर्भ जोड़ना होगा। क्या अंतर्निहित वेब सर्वर? यह थ्रेडसेफ़ बनाम नोट्रेड्रेड्स से कैसे संबंधित है?
डेस्परर्ट

2
मुझे लगता है कि अंतर्निहित वेब सर्वर द्वारा, उसका मतलब है PHP के अंतर्निहित वेबसर्वर ( php -S ip:port) - हालांकि थ्रेड सुरक्षा के संबंध के बारे में कोई विचार नहीं है।
डेविड रिफौआ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.