2012-07-01 10 views
8

में max_execution_time को परिवर्तित नहीं कर सकता है मैंने php क्रॉलर स्क्रिप्ट के max_execution_time को बदलने के लिए सब कुछ करने की कोशिश की है ताकि यह एक अनंत समय चला सके।PHP- xampp

मैं 0 या 100000000 के लिए, लेकिन कोई परिवर्तन नहीं होता php.ini max_execution_time की स्थापना फ़ाइल को बदल दिया है

मैं भी ini_set('max_execution_time', 0);

सभी php स्क्रिप्ट फेंक का उपयोग करके PHP स्क्रिप्ट से ही यह स्थापित करने की कोशिश की है एक ही त्रुटि Fatal error: Maximum execution time of 3000 seconds exceeded, मैं क्या खो सकता हूं और मैं कैसे सुनिश्चित कर सकता हूं कि कोई अधिकतम निष्पादन समय सीमा नहीं है?

PHP स्क्रिप्ट

<?php 
ini_set('MAX_EXECUTION_TIME', -1); 
error_reporting(E_ALL); // turn on all errors, warnings and notices for easier debugging 
//ini_set('max_execution_time', 123456); 
ini_set('max_input_time', -1); 
ini_set('memory_limit', '512M'); 
set_time_limit(0); 
date_default_timezone_set('Europe/London'); 

/*code which scrapes websites*/ 

?> 

phpinfo()

max_execution_time 0 0 
max_input_time  -1 -1 
+1

आप php.ini पर एक अलग max_execution_time सेट करने के बाद अपाचे और पीएचपी को पुनः आरंभ किया था स्थानीय phpmyadmin ताज़ा ? :) – Mahn

+0

मुझे लगता है कि आपको अपनी स्क्रिप्ट को सबसे पहले अनुकूलित करना चाहिए। 3000 सेकेंड एक PHP फ़ाइल के लिए एक लंबा समय है। अन्यथा आपको कमांड लाइन पर अपनी स्क्रिप्ट चलाना चाहिए। – Stony

+0

क्षमा करें मैं फुटबॉल देख रहा था, मैं इस बारे में भूल गया जब नंबर 1 ने इसका उत्तर दिया। –

उत्तर

3

आप अपने क्रॉलर अपाचे के तहत चलाए जाने नहीं करना चाहिए, यह स्टैंड-अलोन के माध्यम से चलाने के लिए बेहतर है Gearman सेटअप के हिस्से के रूप में क्ली।

इस तरह यह आपके वेब सर्वर को हॉग नहीं करेगा और जब तक आप चाहें तब तक चल सकते हैं। आप गियरमैन के लिए कई बाइंडिंग पा सकते हैं जिसका उपयोग आप PHP के पाठ्यक्रम सहित कर सकते हैं।

+1

मैं दूंगा यह सब शॉट खराब होने पर एक शॉट है, अभी मैं कमांड प्रॉम्प्ट में php फ़ाइल चलाने की कोशिश करने जा रहा हूं क्योंकि यह एक ब्राउज़र समस्या हो सकती है, जो वास्तव में मुझे पागल करता है वह है जब कुछ काम करना चाहिए –

0

WAMP में तो आप भी XAMPP में 3 मिल सकती है, तो बस इसके लिए खोज है तीन php.ini फ़ाइलें आप जो सेटिंग कर रहे हैं उसे max_execution_time ढूंढें और बदलें। लेकिन आपको कुछ भी छोटा नहीं रखना चाहिए जितना आप चल रहे ऐप के लिए।

+1

नहीं मैंने एक किया है सिस्टम सर्च, xammp में केवल 1 php.ini फ़ाइल है –

4

कोशिश php में सुरक्षित मोड को बंद करने और फिर नीचे दिए गए कोड यह आपको अनंत समय के लिए स्क्रिप्ट को चलाने के लिए अनुमति चाहिए कोशिश

if(!ini_get('safe_mode')){ 
    set_time_limit(0); //this won't work if safe_mode is enabled. 
} 

अपाचे में आप इस लाइन के साथ .htaccess द्वारा अधिकतम निष्पादन समय बदल सकते हैं

php_value max_execution_time 200 

set_time_limit() php manual ref.

+0

दुर्भाग्य से यह काम नहीं किया –

+0

@ mk_89 क्या आपने php का सुरक्षित मोड बंद कर दिया है? यदि आपने अपने xampp – LoneWOLFs

+0

को पुनर्स्थापित करने का प्रयास किया है, तो मैंने इसे बंद कर दिया है, शायद मैं इसे –

0

आप अपनी स्क्रिप्ट में ignore_user_abort(TRUE); सेट करने का भी प्रयास कर सकते हैं क्योंकि यह स्क्रिप्ट के बजाय ब्राउज़र का समय समाप्त हो सकता है।

php.net पुस्तिका से

<?php 
// Ignore user aborts and allow the script 
// to run forever 
ignore_user_abort(true); 
set_time_limit(0); 

अधिक जानकारी

http://www.php.net/manual/en/function.ignore-user-abort.php

+0

ठीक है मैं इसे दूंगा एक शॉट –

+0

यह काम नहीं किया –

0

के लिए देखें आप खिड़कियों पर कर रहे हैं, और यह एक CLI रन स्क्रिप्ट maybe read this है।

0

एक टेम्प स्क्रिप्ट से phpinfo() चेक करें और max_execution_time के लिए खोजें। सुनिश्चित करें कि यह वही मूल्य है जो आप सेट कर रहे हैं। डिफ़ॉल्ट 30 सेकंड होना चाहिए। इसे दो अलग-अलग मानों में बदलने और अपाचे को पुनरारंभ करने का प्रयास करें, फिर पुष्टि करने के लिए phpinfo() में मान की जांच करें।

यदि आप मान बदलते हैं तो यह phpinfo() में ठीक से परिलक्षित होता है इसका मतलब है कि आपकी स्क्रिप्ट में कुछ कोड है जो इस मान को बदल रहा है। अपने कोड में दो चीज़ों की खोज:

  1. ini_set() के लिए अपने कोड खोज और अगर यह max_execution_time
  2. खोज set_time_limit()

के लिए इन कार्यों स्क्रिप्ट से निष्पादन की अधिकतम समय सीमा को बदल सकते हैं बदल रहा है की जाँच करें। अन्यथा आपको .htaccess जांचना चाहिए जहां से यह मान सेट किया जा सकता है। लेकिन यह phpinfo() भी प्रभावित करेगा।

1

उपयोग

set_time_limit(0); 

स्क्रिप्ट

+2

मैंने पहले से ही यह –

0

के शीर्ष पर मैं xampp documentation में निम्नलिखित मिल गया। शायद आप गलत php.ini फ़ाइल को संपादित करने का प्रयास कर रहे हैं?

Why have changes in my php.ini no effect?

Since XAMPP 1.7.1 the "php.ini" is only in the directory "\xampp\php". Till XAMPP 1.7.0 is was in the directory "\xampp\apache\bin".

If a change in the "php.ini" have no effect, it's possible PHP is still using an other one. You can verify this with phpinfo(). Go to the URI localhost/xampp/phpinfo.php and search for "Loaded Configuration File". This value shows you the "php.ini" PHP is really using.

Info: After changing the "php.ini" you have to restart Apache, thus Apache/PHP can read the new settings.

+0

किया है मैंने पहले phpinfo() की जांच की है और मेरे द्वारा किए गए परिवर्तन –

+0

ठीक है, मुझे [stackoverflow] पर एक और प्रश्न मिला है (http: // stackoverflow। कॉम/प्रश्न/4103952/अधिकतम-मूल्य-अधिकतम-इनपुट-समय) जो max_input_time का उल्लेख करता है। क्या आपने इसे चेक किया है? –

+0

मैं अब वह करूँगा –

0
तुम क्या कर रहे सिर्फ अपने पृष्ठ के अंदर जो कुछ भी करने के लिए max_execution_time स्थापित कर रही है

। आप इनआई_सेट का उपयोग करके इसे बदल नहीं सकते हैं। आप केवल memory_limit बदल सकते हैं।

see more details here... php आधिकारिक साइट से।

यदि आप उन्हें बदलना चाहते हैं, तो php.ini में बदलें।

0

आप php.ini में इन दोनों को बदलना होगा (और जाँच लें कि यदि phpinfo(); उत्पादन में स्थान का पता लगाकर सही php.ini है!)

max_execution_time = 0 
max_input_time = 0 

और वह जांच के बाद अगर कुछ php फ़ाइल उन चरों को स्थानीय रूप से ओवरराइट नहीं कर रहा है।

0

खुला php.ini नोटपैड फ़ाइल और खोज या upload_max_filesize = 1000M खोजने के लिए और आप Post_max_filesize = 1000M पर बदलना चाहिए तो अपने XAMPP को पुनः आरंभ और ..