মারাত্মক ত্রুটি: সর্বোচ্চ নির্বাহের সময় 30 সেকেন্ড অতিক্রম করেছে


397

আমি একটি অনলাইন উত্স থেকে একটি জেএসএন ফাইল ডাউনলোড করছি এবং এটি লুপের মধ্য দিয়ে চলে গেলে আমি এই ত্রুটিটি পেয়ে যাচ্ছি:

মারাত্মক ত্রুটি: সর্বাধিক নির্বাহের সময় 30 সেকেন্ডের বেশি সি: \ wamp in www \ temp execution fetch.php লাইন 24 এ ছাড়িয়েছে


11
সর্বাধিক নির্বাহের সময় 60 সেকেন্ডের সম্ভাব্য সদৃশটি অতিক্রম করেছে যা ইতিমধ্যে অন্য তিনজনের নকল। জিজ্ঞাসার আগে অনুসন্ধান ফাংশন ব্যবহার করুন।
গর্ডন

"সেট_টাইম_লিমিট () ফাংশন এবং কনফিগারেশন নির্দেশিকা ম্যাক্সেক্সেক্সিউশন_টাইম কেবল স্ক্রিপ্টের সঞ্চালনের সময়কেই প্রভাবিত করে system স্ক্রিপ্টটি চলমান সর্বাধিক সময় নির্ধারণের সময় অন্তর্ভুক্ত নয় Windows উইন্ডোজে এটি সত্য নয় "পিএইচপি ডকুমেন্টেশন থেকে
জ্যাকব সানচেজ

উত্তর:


722

আপনার লুপ অন্তহীন হতে পারে। যদি এটি না হয় তবে আপনি সর্বোচ্চ কার্যকর প্রয়োগের সময়টি এভাবে বাড়িয়ে দিতে পারেন:

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

এবং

set_time_limit(300);

অস্থায়ীভাবে সময় সীমা প্রসারিত করতে ব্যবহার করা যেতে পারে।


95
সেট_টাইম_লিমিট (300) সময়সীমা অস্থায়ীভাবে প্রসারিত করতে ব্যবহৃত হতে পারে।
ওমন

এটি কি কেবলমাত্র সেই একই স্ক্রিপ্টের জন্য সেট করা হয়েছে বা এটি একই সার্ভারে এটির পরে কার্যকর করা অন্যান্য সমস্ত স্ক্রিপ্টগুলিকে প্রভাবিত করবে?
রাও

1
@ রাও হ্যাঁ, এটি কেবলমাত্র সেই স্ক্রিপ্টের জন্যই হবে। সমস্ত স্ক্রিপ্টগুলির জন্য এটি তৈরি করতে আপনার এটি পিএইচপি.আইএনআই ফাইলটিতে পরিবর্তন করা দরকার। আপনি set_time_limit (0) করতেও পারেন; আপনি যদি স্ক্রিপ্টটি চিরকালের জন্য চালিত করতে চান বা দীর্ঘ সময়ের জন্য চান
হাসিব

31
ini_set ('ম্যাক্স_অ্যাক্সিউশন_টাইম', 0); // সীমা নেই
জুনেদ আতারি

3
@ সংগাম আমি বলছি এটি সর্বোত্তম অনুশীলন, নির্দিষ্ট পরিমাণে অতিরিক্ত বাফারকে দেওয়ার সময় এই সীমাটিকে যথাসম্ভব কম রাখার জন্য। সুরক্ষার কারণে আমি এটিকে পুরোপুরি বন্ধ করতে চাই না। এটি যুক্তিসঙ্গত সেট করা উচিত। আমার দীর্ঘতম চলমান স্ক্রিপ্টটি মাঝারি সার্ভার-স্ট্রেস-স্তরের অধীনে সম্পূর্ণ হওয়ার জন্য যে পরিমাণ সময় লাগে তা আমি দ্বিগুণ সেট করেছিলাম। তবুও এটি সর্বদা ব্যর্থ হতে পারে। তাই সেরা অনুশীলন হ'ল সময় সাপেক্ষ স্ক্রিপ্টগুলি পৃথকভাবে গ্রহণের জন্য সময়-আনা বিষয়গুলি মোকাবেলা করা।
হাফেনক্রিনিচ

185

আমি একই সমস্যা ছিল এবং PARAM মান পরিবর্তন করে এটিকে মীমাংসিত max_execution_timeমধ্যে php.ini, এভাবে:

max_execution_time = 360      ; Maximum execution time of each script, in seconds (I CHANGED THIS VALUE)
max_input_time = 120          ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M           ; Maximum amount of memory a script may consume (128MB by default)

আমি আশা করি এটি আপনাকে সহায়তা করতে পারে।


1
কোনও কারণে ini_set কাজ করছে না তবে এটি নিশ্চিতভাবে সহায়তা করে!
গাবরজন

php.iniপাওয়া যাবে /etc/php5/apache2/php.ini.... আমি
ওবুন্টু

ওয়্যাম্পে মুডল ইনস্টল করার সময় আমার একই সমস্যা হয়েছিল তবে php.ini ফাইলটি কনফিগার করার সমাধান হয়েছিল
মুহাম্মদ ইরফান

1
Php.ini
spideringweb

[পিএইচপি 7] - সুডো ন্যানো /etc/php/7.0/apache2/php.ini
ক্রিস ল্যাম্ব্রো

46

উপরের সমস্ত উত্তর সঠিক, তবে কিছু ক্ষেত্রে এটি এড়াতে আমি একটি সহজ উপায় ব্যবহার করি।

আপনার স্ক্রিপ্টের সূচনাতে কেবল এই আদেশটি দিন:

set_time_limit(0);

9
এটি মোটেও সুপারিশ করা হয় না
আমি

1
বন্ধ সময়সীমা অসীম লুপগুলির বিরুদ্ধে সুরক্ষা দেয় না, তাই সর্বদা একটি (বৃহত্তর) সীমা সেট করুন।
বিমলাস

নিবন্ধন করুন আপনি যদি এটি লোকালহোস্ট হিসাবে ব্যবহার করেন
ফার্নান্দো টরেস

23

ওয়ার্ডপ্রেস ৪.০ এ আপগ্রেড করার সময় আমি এই সমস্যায় পড়েছি । ডিফল্টরূপে ওয়ার্ডপ্রেস সর্বাধিক কার্যকর সময়টি 30 সেকেন্ডে সীমাবদ্ধ করে।

ডিফল্টটিকে ওভার রাইড করতে আপনার ওয়ার্ডপ্রেস ইনস্টলেশনটির মূল ডিরেক্টরিতে আপনার .htaccess ফাইলে নিম্নলিখিত কোডটি যুক্ত করুন ।

php_value max_execution_time 300  //where 300 = 300 seconds = 5 minutes

18

সম্পাদন করা Php.ini

এই লাইনটি সন্ধান করুন:

max_execution_time

এর মান 300 এ পরিবর্তন করুন:

max_execution_time = 300

300 এর অর্থ HTTP অনুরোধের জন্য কার্যকর করার 5 মিনিটের সময়।


16

আপনার স্ক্রিপ্ট সময় শেষ। এক্সিকিউশন সময় পর্যন্ত সেট_টাইম_লিমিট () ফাংশনটি একবার দেখুন । বা স্ক্রিপ্টটিকে দ্রুত চালানোর জন্য প্রোফাইল করুন :)


1
@ হারশাএমভি তার অর্থ স্ক্রিপ্টটি কেন শুরু হতে দেরি হচ্ছে তা নির্ধারণ করার জন্য একটি পারফরম্যান্স প্রোফাইল ব্যবহার করুন এবং কার্যকরকরণের সময় উন্নত করতে আপনার কোডটি অনুকূলিত করুন। এই বাধা কার্যকর হতে পারে, বাধা কী (সিপিইউ বনাম ডিস্ক আই / ও বনাম নেটওয়ার্ক) এর উপর নির্ভর করে।
ড্যান বেচার্ড

12

যদি উপরের সমস্তগুলি আপনার পক্ষে কাজ করে না তবে .htaccessআপনার স্ক্রিপ্টটি যেখানে রয়েছে সেখানে ডিরেক্টরিতে একটি ফাইল যুক্ত করুন এবং এটি ভিতরে রেখে দিন

<IfModule mod_php5.c>
php_value post_max_size 200M
php_value upload_max_filesize 200M
php_value memory_limit 300M
php_value max_execution_time 259200
php_value max_input_time 259200
php_value session.gc_maxlifetime 1200
</IfModule>

এই ভাবে আমি আমার সমস্যার সমাধান ছিল, তন্ন তন্ন ini_set('max_execution_time', 86400);না set_time_limit(86400)আমার সমস্যার সমাধান, কিন্তু .htaccess পদ্ধতি করেনি।


1
এটা আমার ক্ষেত্রে কাজ করে। ধন্যবাদ. জি-এর জন্য এম এর সাথে এম প্রতিস্থাপন করুন
ওয়েব_ডভোপারটি

11

আমরা এই সমস্যাটি 3 টি বিভিন্ন উপায়ে সমাধান করতে পারি।

1) php.ini ফাইল ব্যবহার করা

2) .htaccess ফাইল ব্যবহার করে

3) Wp-config.php ফাইল (ওয়ার্ডপ্রেসের জন্য) ব্যবহার করে


8

আপনার স্ক্রিপ্টের শীর্ষে এই লাইনটি যুক্ত করে আপনি শূন্যে সেট করে সীমাবদ্ধতাটি সরাতে পারেন:

<?php ini_set('max_execution_time', 0); ?>

7

পথ অনুসরণ করুন /etc/php5(your php version)/apache2/php.ini

এটি খুলুন এবং max_execution_timeএকটি পছন্দসই মান নির্ধারণ করুন ।


নির্দিষ্ট হোস্টিং সরবরাহকারীদের আপনাকে / home
mittedusername//

7

আপনি php.ini ফাইলের অধীনে যে কোনও জিনিস বদলেছেন তা পরীক্ষা করে দেখুন। উদাহরণস্বরূপ , "এক্সটেনশন = php_intl.dll" যোগ না করে "আন্তর্জাতিকীকরণ এক্সটেনশন (ইন্টেল)" সক্ষম করার জন্য আমি "; intl.default_locale =" থেকে "; intl.default_locale = en_utf8" পরিবর্তন করেছি তবে এই একই ত্রুটি ঘটেছে। সুতরাং আমি অনুরূপ ভুল পরীক্ষা করার পরামর্শ দিই।


5

পিএইচপি স্ক্রিপ্টের শীর্ষে নীচের লাইনটি যুক্ত করে আপনার স্ক্রিপ্ট সম্পাদনের সময় বাড়ান।

ini_set('max_execution_time', 120); //120 seconds = 2 minutes

উল্লেখ পিএইচপি স্ক্রিপ্ট এক্সিকিউশন সময় বৃদ্ধি থেকে নেওয়া হয়েছে


5

আপনার প্রসারিত করতে max_execution_timeআপনি হয় ini_setবা ব্যবহার করতে পারেন set_time_limit

// Set maximum execution time to 10 seconds this way
ini_set('max_execution_time', 10);
// or this way
set_time_limit(10);

!! তবে সচেতন থাকুন যে, উভয় ফাংশন পুনরায় সূচনা করে টাইম স্ক্রিপ্টের গণনা ইতিমধ্যে কার্যকর করতে গৃহীত হয়েছিল

sleep(2);
ini_set('max_execution_time', 5);

register_shutdown_function(function(){
    var_dump(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']);
});

for(;;);

//
// var_dump outputs float(7.1981489658356)
//

সুতরাং আপনি যদি সর্বাধিক পরিমাণ সময় স্ক্রিপ্ট চালাতে পারেন সেট করতে চান তবে আপনার কমান্ডটি অবশ্যই প্রথম হওয়া উচিত।

এই দুটি ফাংশনের মধ্যে পার্থক্য

  • set_time_limit এটি সফল হয়েছে কিনা তা তথ্য ফেরত দেয় না তবে এটি ত্রুটির উপর সতর্কতা নিক্ষেপ করবে।
  • ini_setসাফল্যের পুরানো মান প্রদান করে, বা কোনও সতর্কতা / ত্রুটি ছাড়াই ব্যর্থতায় মিথ্যা

5

আপনি ডাব্লুএইচএম দিয়ে এটি সহজেই করতে পারেন। সবেমাত্র পেয়েছি:

WHM -> পরিষেবা কনফিগারেশন -> পিএইচপি কনফিগারেশন

editor-> max_execution_time=30

(30 টি আপনার ডিফল্টরূপে এটির মান পরিবর্তন করুন)


2

ওয়ার্ডপ্রেস সাইটে আমার একই সমস্যা রয়েছে, আমি .htaccess ফাইলটি যুক্ত করেছিলাম তখন আমার পক্ষে ভাল কাজ করে।

php_value max_execution_time 6000000

0

আমি আমার ক্ষেত্রে কিছু পরিবর্তন করেছি: xampp \ phpMyAdmin \ লাইব্রেরি \ config.default.php

আমি অনুসন্ধান করেছি: $cfg['ExecTimeLimit'] এবং ডানদিকে মান পরিবর্তন করুন ...

আপনি 5000 ডলার এর মতো ডান হাতের মানকে যে কোনও উচ্চতর মানতে পরিবর্তন করতে পারেন । এবং এটি কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.