2011-03-02 6 views
7

यह एक मूल प्रश्न हो सकता है लेकिन हर बार उपयोगकर्ता किसी सर्वर से php फ़ाइल कॉल करता है, क्या यह उस सर्वर से एक नई प्रक्रिया बनाता है?वेब पेज के प्रत्येक अनुरोध के लिए नई प्रक्रिया का निर्माण?

उदाहरण के लिए, मेरे पास मूलभूत रूप है (चलिए index.php पर कहते हैं) जो किसी अन्य PHP फ़ाइल में एक टेक्स्ट सबमिट करता है। उस PHP फ़ाइल में, मैं posix_getpid() प्रिंट करता हूं।

मैंने अपने index.php में दो टैब में खोला और एक टेक्स्ट सबमिट किया और मैं प्रत्येक टैब पर दो अलग-अलग पिड के साथ समाप्त हुआ।

जो मुझे इस निष्कर्ष पर ले जाता है कि एक सर्वर शायद प्रत्येक स्क्रिप्ट के लिए एक नई प्रक्रिया बनाता है। क्या मैं सही हूँ?

चीयर्स!

उत्तर

5

मुझे लगता है कि आप अपने वेब सर्वर के रूप में अपाचे चला रहे हैं।

जब कोई अनुरोध आता है, तो अपाचे एक नया धागा शुरू करता है। PHP को इस नए थ्रैड पर बुलाया जाता है, इसलिए आपको हर बार एक नई प्रक्रिया आईडी क्यों मिलती है।

यह निश्चित रूप से बहुत सरल है।

मैं गहरी समझ के लिए this आलेख पढ़ने की अनुशंसा करता हूं।

संपादित करें: ऐसा लगता है कि प्रक्रिया प्लेटफार्मों के बीच अलग है। यह विंडोज़ पर ऊपर वर्णित तरीके से काम करता है, लेकिन यूनिक्स पर एकाधिक अपाचे प्रक्रियाएं निष्पादित की जाती हैं।

+2

ठीक है, तो यह अपाचे की वजह से है। लेकिन आपकी व्याख्या मेरे लिए थोड़ा अजीब है क्योंकि धागे और प्रक्रियाएं काफी अलग हैं। मेरा मतलब है, अगर अपाचे एक नया धागा शुरू करता है, तो इसका मतलब है कि प्रत्येक PHP स्क्रिप्ट में अपाचे पिड होना चाहिए! – David

+0

हालांकि मैं लेख पढ़ने के लिए जा रहा हूँ। – David

+0

नहीं, पीआईडी ​​नव निर्मित PHP उदाहरण से आता है, अपाचे प्रक्रिया नहीं। – alexn

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