2011-12-04 14 views
5

मैं एक स्क्रिप्ट मैं कहाँ सेट कर दिया है:set_time_limit (0) और "अधिकतम निष्पादन समय" पीएचपी

:

set_time_limit(0) 

लेकिन अभी भी

Fatal error: Maximum execution time of 90 seconds exceeded in /home/Feed.php on line 234 

मैं भी स्थापित करने की कोशिश की है मिल

php_value max_execution_time 120 

.htaccess फ़ाइल में अभी भी इस त्रुटि को रोक नहीं सकता - कोई विचार क्यों यह ओवरराइड नहीं कर रहा है?

+3

आपका होस्ट आपके ओवरराइड को ओवरराइड करता है ?, यदि आप लूप के भीतर 'set_time_limit (0)' रखते हैं तो यह प्रत्येक पुनरावृत्ति पर 0 को रीसेट कर देगा। –

+1

@LawrenceCherone क्या आप निश्चित हैं? –

+1

बस यह बताने के लिए कि 'set_time_limit (XX)' ने मेरी समस्या हल की है। शायद अलग-अलग मेजबानों के अलग-अलग नियम/विन्यास होते हैं। 'Php_value max_execution_time XX' ने चाल नहीं की। – nobug

उत्तर

5

सबसे अधिक संभावना है कि आपका होस्ट सुहोशिन पैच के साथ PHP की एक प्रति चला रहा है। यह पैच PHP में बड़ी संख्या में सुरक्षा और परिचालन संवर्द्धन प्रदान करता है, जिसमें मेजबान को set_time_limit() जैसे कार्यों को अक्षम करने की अनुमति भी शामिल है।

अन्य तरीके अन्य होस्ट set_time_limit() फ़ंक्शन को अक्षम कर सकते हैं, लेकिन यह सबसे अधिक संभावना है। (विशेष रूप से जब आप पहले से ही सुरक्षित मोड से इंकार कर चुके हैं)

वे इस फ़ंक्शन को अक्षम क्यों करेंगे? चूंकि एक PHP फ़ंक्शन जो चलाने में लंबा समय लगता है, आमतौर पर बहुत से सर्वर संसाधन लेता है; एक साझा होस्टिंग माहौल में, होस्ट के लिए यह समझना बुद्धिमान है कि इस तरह की चीज को कम करने के लिए अन्य उपयोगकर्ताओं को एक दुष्ट स्क्रिप्ट प्रभावित करने से बचें।

आप इसके बारे में क्या कर सकते हैं?

सबसे पहले, क्या आपको यकीन है कि आपको समय सीमा निर्धारित करने की आवश्यकता है? क्या आपको पता है कि आपकी स्क्रिप्ट को चलाने के लिए इतना समय क्यों लगता है? क्या आप इसके आसपास काम कर सकते हैं? शायद आपके कोड पर कुछ प्रोफाइलिंग करने से आप बाधाओं को ढूंढने और प्रोग्राम को तेज करने में मदद कर सकते हैं।

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

3

PHP का सुरक्षित मोड में चल रहा है जब इस फ़ंक्शन का कोई प्रभाव नहीं पड़ता है। इसका कोई समाधान नहीं php.ini

+0

यह सुरक्षित मोड में नहीं चल रहा है –

0

में सुरक्षित मोड को बंद या बदलते समय सीमा आप यकीन है कि यह सुरक्षित मोड में नहीं चल रहा है कर रहे हैं के अलावा अन्य ...

http://php.net/manual/en/function.set-time-limit.php

है "जब कहा जाता है, set_time_limit() शून्य से टाइमआउट काउंटर को पुनरारंभ करता है। "

तो आप सैद्धांतिक रूप से call set_time_limit(0) बार-बार कर सकते थे।

हालांकि, यह अपने होस्टिंग प्रदाता सुरक्षित मोड के माध्यम से है कि को रोकने के लिए करने के लिए, आदि

ईमानदारी से, मैं सिर्फ अगर आप की इस प्रकार की अनुकूलित करने के लिए जरूरत है एक सस्ता VPS जहां आप चीजों को नियंत्रित करने की कोशिश करता हूँ संभव है चीज़।

+1

मैनुअल ने कहा कि "यदि शून्य पर सेट किया गया है, तो कोई समय सीमा लागू नहीं की जाती है।" – xdazz

+0

हां।लेकिन मुद्दा यह है कि इसे 0 पर सेट करना उनके लिए पर्याप्त नहीं है। इसलिए काउंटर को रीसेट करने के लिए इसका उपयोग व्यवहार्य हो सकता है। मैंने कभी इस तरह दुरुपयोग करने की कोशिश नहीं की लेकिन यह माना जाता है कि यह काम करता है। – ReadWriteCode

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