2011-05-02 9 views
6

मैं PHP के साथ अपाचे का मानक कॉन्फ़िगरेशन चला रहा हूं। मुझे आश्चर्य है कि क्या होता है जब कोई क्लाइंट किसी ऐसे पृष्ठ का अनुरोध करता है जो PHP स्क्रिप्ट निष्पादित करता है, तो क्लाइंट समाप्त होने से पहले क्लाइंट सर्वर से अनुरोध को मार देता है। क्या अपाचे किसी भी तरह से स्क्रिप्ट को मारता है, या फिर इसे पूरा करने की अनुमति है?क्या HTTP कनेक्शन मरने पर अपाचे द्वारा निष्पादित एक PHP स्क्रिप्ट है?

+0

लिपि को समाप्त करने की अनुमति होगी। – meagar

+0

@मेगर: नहीं। मेरा जवाब देखें। –

उत्तर

8

documentation जवाब इस:

जब एक PHP स्क्रिप्ट सामान्य रूप से सामान्य राज्य चल रहा है, सक्रिय है। यदि रिमोट क्लाइंट ABORTED राज्य ध्वज चालू करता है तो डिस्कनेक्ट हो जाता है। एक रिमोट क्लाइंट डिस्कनेक्ट आमतौर पर उपयोगकर्ता द्वारा अपना स्टॉप बटन मारने के कारण होता है। यदि PHP- लगाए गए समय सीमा ( set_time_limit()) को हिट किया गया है, तो TIMEOUT राज्य ध्वज चालू है।

आप तय कर सकते हैं कि आप क्लाइंट डिस्कनेक्ट कर सकते हैं ताकि स्क्रिप्ट को निरस्त किया जा सके। कभी-कभी आपके स्क्रिप्ट को चलाने के लिए आसान है, भले ही कोई आउटपुट प्राप्त करने वाले दूरस्थ ब्राउज़र को पूरा न हो। हालांकि दूरस्थ क्लाइंट डिस्कनेक्ट होने पर डिफ़ॉल्ट व्यवहार आपकी स्क्रिप्ट को निरस्त करने के लिए है। यह व्यवहार के साथ-साथ ignore_user_abort अपाचे httpd.conf निर्देश इसी php_value के माध्यम से या ignore_user_abort() फ़ंक्शन के साथ ignore_user_abort php.ini निर्देश के माध्यम से स्थापित किया जा सकता। यदि आप को उपयोगकर्ता को अनदेखा करने के लिए PHP को नहीं बताते हैं और उपयोगकर्ता निरस्त करता है, तो आपकी स्क्रिप्ट समाप्त हो जाएगी।

यदि आप रिमोट क्लाइंट को बताना चाहते हैं कि स्क्रिप्ट पूर्ण है, लेकिन पोस्ट-अनुरोध प्रोसेसिंग जारी रखें, फिर भी this question/answer देखें।

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