लेन-देन का समय कैसे बढ़ाया जाए? मैं वीडियो अपलोड करना चाहता हूं, लेकिन बड़े आकार के वीडियो अपलोड नहीं किए गए हैं?
यह त्रुटि फेंकता है The process *** exceeded the timeout of 60 seconds.
लेन-देन का समय कैसे बढ़ाया जाए? मैं वीडियो अपलोड करना चाहता हूं, लेकिन बड़े आकार के वीडियो अपलोड नहीं किए गए हैं?
यह त्रुटि फेंकता है The process *** exceeded the timeout of 60 seconds.
जवाबों:
आपको अपने php.ini में कुछ सेटिंग बदलने की जरूरत है:
upload_max_filesize = 2M
;or whatever size you want
max_execution_time = 60
; also, higher if you must - sets the maximum time in seconds
क्या आपका PHP.ini स्थित है, आपके पर्यावरण, अधिक जानकारी पर निर्भर करता है: http://php.net/manual/en/ini.list.pp
आपको रनटाइम के दौरान भी ऐसा करने में सक्षम होना चाहिए
set_time_limit(100);
http://php.net/manual/en/function.set-time-limit.php
या आपके vhost-config में
php_admin_value max_execution_time 10000
वैश्विक निष्पादन समय सीमा जो कि कम है, अधिकतर प्रदर्शन-कारणों के लिए एक अच्छा विचार है, न कि इतने विश्वसनीय अनुप्रयोगों पर। इसलिए आप केवल उन लिपियों को लंबे समय तक चलने देना चाहते हैं, जो वास्तव में हैं।
ps: मत भूलो post_max_size और upload_max_filesize के बारे में (पहले से बताए गए जवाब की तरह)
हेंस के उत्तर को पूरा करने के लिए।
आपको अपने php.ini में कुछ सेटिंग बदलने की जरूरत है:
upload_max_filesize = 2M
;or whatever size you want
max_execution_time = 60
; also, higher if you must
यदि कोई व्यक्ति असीमित में रखना चाहता है (मुझे नहीं पता कि क्यों लेकिन यदि आप चाहते हैं), तो आप समय को 0 पर सेट कर सकते हैं:
आपको अपने php.ini में कुछ सेटिंग बदलने की जरूरत है:
upload_max_filesize = 0
max_execution_time = 0
और अगर आप नहीं जानते कि आपका php.ini कहां है। आप अपने सर्वर में एक फ़ाइल "name.php" कर सकते हैं और डाल सकते हैं:
<?php phpinfo(); ?>
और अपनी वेबसाइट पर, आप अपने php.ini का कॉन्फिगर देख सकते हैं और यह चिन्हित किया गया है कि यह कहाँ है।
यदि आप अपने php.ini का उपयोग नहीं कर सकते हैं, तो आपके पास दो और विकल्प हैं।
आप इस लाइन को सीधे अपनी "name.php" फ़ाइल में सेट कर सकते हैं, लेकिन मुझे इस विकल्प के लिए upload_max_filesize नहीं चाहिए:
set_time_limit(0);
या ".htaccess" में
php_value upload_max_filesize 0
php_value max_execution_time 0
यदि आपको जो करने की आवश्यकता है वह केवल 1 या 2 पृष्ठों के लिए विशिष्ट है, तो मैं set_time_limit का उपयोग करने का सुझाव देता हूं ताकि यह पूरे एप्लिकेशन को प्रभावित न करे।
set_time_limit(some_values);
लेकिन संभोग के दौरान ये 2 मान (post_max_size & upload_max_filesize) जांच के अधीन हैं।
आप या तो ini_set फ़ंक्शन के माध्यम से इसे सेट कर सकते हैं
ini_set('post_max_size','20M');
ini_set('upload_max_filesize','2M');
या सीधे php.ini फ़ाइल में हेंस द्वारा ऊपर की प्रतिक्रिया की तरह, या यहां तक कि नीचे की तरह iin .htaccess सेट करें
php_value upload_max_filesize 2M
php_value post_max_size 20M
उपरोक्त उत्तरों के अतिरिक्त, आप set_time_limit()फ़ंक्शन का उपयोग कर सकते हैं :
http://php.net/manual/en/function.set-time-limit.php
0एक तर्क के रूप में गुजरना आपकी स्क्रिप्ट को बिना किसी समय सीमा के संचालित करेगा।
यदि आप Microsoft IIS सर्वर का उपयोग करते हैं, तो दूसरों द्वारा उल्लिखित php.ini सेटिंग्स के अलावा, आपको IIS सर्वर प्रबंधक में PHP FastCGI एप्लिकेशन के लिए निष्पादन टाइमआउट सेटिंग्स बढ़ाने की आवश्यकता हो सकती है:
चरण 1) IIS सर्वर प्रबंधक खोलें (आमतौर पर प्रारंभ मेनू में सर्वर प्रबंधक के तहत , फिर उपकरण / इंटरनेट सूचना सेवा (IIS) प्रबंधक )।
चरण 2) मुख्य कनेक्शन पर क्लिक करें (किसी विशेष डोमेन के लिए विशिष्ट नहीं)।
चरण 3) IIS अनुभाग के तहत , FastCGI सेटिंग्स (नीचे दिखाया गया है) ढूंढें ।
चरण 4) उसमें, PHP एप्लिकेशन पर राइट-क्लिक करें और संपादित करें ... का चयन करें ।
चरण 5) टाइमआउट की जाँच करें (नीचे दिखाया गया है)।
मेरे मामले में, यहां डिफ़ॉल्ट टाइमआउट 70 और 90 सेकंड थे; पहले जो PHP स्क्रिप्ट पर 500 आंतरिक सर्वर त्रुटि पैदा कर रहा था जो 70 सेकंड से अधिक समय तक रहता था।
मुझे पता है कि आप विशेष रूप से PHP टाइमआउट के बारे में पूछ रहे हैं, लेकिन किसी और ने जो उल्लेख किया है ऐसा लगता है कि वेबसर्वर पर एक टाइमआउट भी हो सकता है और यह PHP टाइमआउट के समान दिख सकता है।
तो अगर आपने कोशिश की है:
और आपने phpinfo () फ़ंक्शन के साथ जांच की है कि max_execution_time वास्तव में बढ़ गया है, तो आप इस .htaccess को जोड़ने की कोशिश करना चाहते हैं जो सुनिश्चित करेगा कि Apache खुद ही समय नहीं निकालती है:
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]
यहाँ अधिक जानकारी: https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/
पहले php.iniफ़ाइल पथ की जाँच करें phpinfo(); और फिर बदल दिया PHP.INIparams:
upload_max_filesize = 1000M
memory_limit = 1500M
post_max_size = 1500M
max_execution_time = 30
अपाचे को फिर से शुरू किया
set_time_limit(0); // safe_mode is off
ini_set('max_execution_time', 500); //500 seconds
नोट : आप php.iniलिनक्स में खोजने के लिए कमांड का भी उपयोग कर सकते हैं
locate `php.ini`
यदि आप php.ini (उदाहरण के लिए अपने सर्वर पर) को संपादित नहीं कर सकते हैं, तो आप अपने php कोड के भीतर से php.ini मापदंडों को बदलने का प्रयास कर सकते हैं। प्रयत्न:
ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
यदि वह काम नहीं करता है, तो 'set_time_limit' को भी उसी तरह सेट करने का प्रयास करें, इससे आगे मैं कहूंगा कि आपका एकमात्र विकल्प अपने मेजबान से संपर्क करना है। सुरक्षित मोड में रहते हुए इन सेटिंग्स को संशोधित नहीं किया जा सकता है।
यदि आप सुरक्षित मोड हैं तो टेस्ट करें - यदि नहीं - जो आप चाहते हैं, उसके लिए समय सीमा (स्थानीय मान) निर्धारित करें:
if(!ini_get('safe_mode')){
echo "safe mode off";
set_time_limit(180);// seconds
phpinfo();// see 'max_execution_time'
}
* यदि सुरक्षित मोड 'ऑन' है तो आप इस तरह से समय सीमा निर्धारित नहीं कर सकते।
वैकल्पिक: यदि आप php.ini के बारे में कॉन्फिगर करते हैं लेकिन फिर भी अपलोड नहीं कर सकते हैं
-यह त्रुटि कोड की जाँच करने के लिए php फ़ंक्शन है
$error_type = [];
$error_type[0] = "There is no error";
$error_type[1] = "The uploaded file exceeds the upload_max_filesize directive in php.ini.";
$error_type[2] = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
$error_type[3] = "The uploaded file was only partially uploaded.";
$error_type[4] = "No file was uploaded.";
//$error_type["5"] = "";
$error_type[6] = "Missing a temporary folder. Introduced in PHP 5.0.3.";
$error_type[7] = "Failed to write file to disk. Introduced in PHP 5.1.0.";
$error_type[8] = "A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";
//------------------------------
//--> show msg error.
$status_code = $_FILES["uploadfile"]["error"];
if($status_code != 0){
echo $error_type[$status_code];
exit;
}
वास्तव में समय सीमा बढ़ाने के लिए मैं पहले वर्तमान मूल्य प्राप्त करना पसंद करता हूं। set_time_limitहमेशा समय सीमा नहीं बढ़ा रहा है। यदि वर्तमान मूल्य (जैसे php.iniपूर्व या सेट से) वर्तमान कॉल में उपयोग किए गए मूल्य से अधिक है set_time_limit, तो यह समय सीमा को कम कर देगा !
तो इस तरह एक छोटे सहायक के साथ क्या है?
/**
* @param int $seconds Time in seconds
* @return bool
*/
function increase_time_limit(int $seconds): bool
{
return set_time_limit(max(
ini_get('max_execution_time'), $seconds
));
}
// somewhere else in your code
increase_time_limit(180);
यह भी देखें: PHP स्क्रिप्ट में max_execution_time प्राप्त करें