ข้อผิดพลาดร้ายแรง: เกินเวลาดำเนินการสูงสุด 300 วินาที


91

ฉันได้รับข้อผิดพลาด PHP นี้เรื่อย ๆ :

ข้อผิดพลาดร้ายแรง: เกินเวลาดำเนินการสูงสุด 300 วินาที

ฉันได้พยายามตั้งค่าของฉันmax_execution_timeของฉันและmax_input_timeการตั้งค่าใน php.ini (ทั้ง Apache และ CLI) เพื่อ0, -1และ4000วินาทีในแต่ละ

และฉันยังคงได้รับข้อผิดพลาดว่า:

ข้อผิดพลาดร้ายแรง: เกินเวลาดำเนินการสูงสุด 300 วินาที

สคริปต์ของฉันทำงานเกิน 300 วินาทีก่อนที่ฉันจะได้รับข้อความนี้

ฉันกำลังเรียกใช้สคริปต์ผ่านบรรทัดคำสั่ง

ฉันยังตรวจสอบของฉันphpinfo()เพื่อดูว่าphp.iniฉันใช้

น่าสนใจยิ่งขึ้นฉันได้ลองตั้งค่า max_execution_timeและmax_input_timeการตั้งค่าเป็น 5 วินาทีและสคริปต์ของฉันจะทำงานเกิน 5 วินาทีก่อนที่ฉันจะได้รับ:

ข้อผิดพลาดร้ายแรง: เกินเวลาดำเนินการสูงสุด 300 วินาที


คุณติดตั้งเซิร์ฟเวอร์ประเภทใด
Pekka

1
นี่แปลกมากที่ฉันมีปัญหาเดียวกันใน apache 2.4.18 และ php 7 ... ใช้ PHPMyAdmin เพื่อนำเข้า sql .. phpinfo (); รายงานเวลาอื่น .. จะลองตั้งค่า ini ฉันเดาว่า :(
Michael Fever

ปัญหาเดียวกันฉันพยายามตั้งค่า set_time_limit (3603); ini_set ('max_execution_time', 3604); แต่ทั้งสองอย่างไม่มีผลเวลาดำเนินการสูงสุดยังคงเป็น 360
Infor Mat

คำตอบ:


69

ในตอนต้นของสคริปต์คุณสามารถเพิ่มได้

ini_set('MAX_EXECUTION_TIME', '-1');

2
เพิ่มที่ด้านบนสุดของไฟล์ php ของคุณ
Tules

2
โค้ดบรรทัดนี้จะยกเลิกการ จำกัด เวลาการดำเนินการสูงสุดของโค้ดทำให้โค้ด php ทำงานตลอดไป (ในทางทฤษฎี)
Technotronic

2
ในสคริปต์ใด
Sagar Kodte

หรือset_time_limit(0);= เหมือนกัน
ÍhorMé

100

หากคุณใช้ WAMP Go ไปที่:

เพิ่มmax_execution_timeในphp.iniแล้วไปที่

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (เปลี่ยนเส้นทางตามการติดตั้งของคุณ)

เปิดconfig.default.phpและเปลี่ยนค่า$cfg['ExecTimeLimit']เป็น 0:

$cfg['ExecTimeLimit'] = 0;

วิธีนี้จะแก้ไขปัญหาสำหรับการนำเข้า PhpMyAdmin


@Vipin คุณช่วยแก้ปัญหาด้วยโดยเฉพาะ config.default.php ;-)
Rishi Kulshreshtha

เต็มใจช่วย ! ไชโย :)
Vipin Dubey

ขอบคุณหลังจากเวลาผ่านไปชั่วโมงแห่งความไม่พอใจในการพยายามอัพเกรด 500 MB DB เป็นเวอร์ชันใหม่ของ moodle ...... ฉันประสบความสำเร็จ โดยเฉพาะ moodle 2.2 - 2.6
jamesTheProgrammer

2
ขอบคุณสำหรับคำตอบนี้! ช่วยแก้ปัญหาของฉันหลังจากตระหนักว่าการตั้งค่าเวลาดำเนินการสูงสุดใน php.ini นั้นไม่เพียงพอ!
Rimble

1
config.default.phpมีความชัดเจนมากเกี่ยวกับการไม่แก้ไขโดยบอกให้เราแก้ไขconfig.inc.phpแทน <?php $cfg['ExecTimeLimit'] = 3000; ?>ฉันพยายามที่จะหาได้และไม่สามารถดังนั้นฉันทำของตัวเองและเพิ่ม สิ่งนี้ไม่ได้ทำอะไรเลย ตัดสินใจลองทำดูconfig.default.phpและได้ผล !! เราควรจะทำให้config.inc.phpงานเป็นอย่างไร!?
BillyNair

68

ผู้ใช้ Xampp

  1. ไปที่ xampp\phpMyAdmin\
  2. เปิด config.inc.php
  3. ค้นหา $cfg['ExecTimeLimit'] = 300;
  4. ตั้งค่าให้ใหญ่ขึ้นหรือเปลี่ยนเป็น 0 ได้ไม่ จำกัด
  5. หากไม่พบเพิ่ม$cfg['ExecTimeLimit'] = 0;(หรือค่าที่มากกว่า)
  6. บันทึกไฟล์และรีสตาร์ทเซิร์ฟเวอร์

8
นี่เป็นสิ่งเดียวที่ใช้ได้ผลสำหรับฉันอย่างแท้จริง ขอบคุณสำหรับการโพสต์ ในการตั้งค่าของฉัน $ cfg ['ExecTimeLimit'] = 300; ไม่มีอยู่ใน config.inc.php ดังนั้นฉันจึงเพิ่มที่นั่นแทนที่จะเปลี่ยนค่าใน config.default.php - มีข้อความค่อนข้างใหญ่ระบุว่าอย่าแตะรหัสในไฟล์นั้น;)
เอียน

4
ขอบคุณสำหรับไฮไลต์การรีสตาร์ทเซิร์ฟเวอร์ จุดที่สำคัญที่สุดในการลืม
Pradeep Kumar Prabaharan

4
มีหมายเหตุในไฟล์ config.default.php ที่ระบุว่า "No !! Do Not Edit" ฉันเพิ่ม $ cfg ['ExecTimeLimit'] = 0; ไปยังไฟล์ config.inc.php ของฉันเนื่องจากไม่มีอยู่และดูเหมือนว่าจะใช้งานได้
brandozz

1
โพสต์นี้ช่วยวันของฉันและช่วยฉันเป็นครั้งที่สอง !!! ฉันจะบวกหนึ่งหลังจาก 3 เดือนได้อย่างไร ???
saber tabatabaee yazdi

24

ฉันพบสถานการณ์ที่คล้ายกันและปรากฎว่า Codeigniter (เฟรมเวิร์ก PHP ที่ฉันใช้) กำหนดระยะเวลาของตัวเอง:

ใน system / core / Codeigniter.php บรรทัด 106 ในเวอร์ชัน 2.1.3 จะปรากฏสิ่งต่อไปนี้:

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

เนื่องจากไม่มีวิธีอื่นใดในการหลีกเลี่ยงการเปลี่ยนไฟล์หลักฉันจึงลบมันออกเพื่ออนุญาตการกำหนดค่าผ่าน php.ini รวมทั้งให้เวลาดำเนินการสูงสุดไม่สิ้นสุดสำหรับคำขอ CLI

ฉันขอแนะนำให้บันทึกการเปลี่ยนแปลงนี้ไว้ที่ไหนสักแห่งในกรณีของการอัปเกรดเวอร์ชัน CI ในอนาคต


7
โอ้. ของฉัน ความดี ฉันไม่อยากจะเชื่อเรื่องนี้เลย. เหตุใดโลกที่เต็มไปด้วยเลือดพวกเขาจึง จำกัด เวลาดำเนินการไว้เหนือขีด จำกัด ของเวลาดำเนินการอื่น ๆ ฉันเสียเวลาไปหลายชั่วโมงกับเรื่องนี้ ขอบคุณสำหรับการโพสต์
fool4jesus

1
ที่ไม่น่าเชื่อ คอมเมนต์ล้ำเส้นแล้วได้ผล! เหตุใด CI จึงเขียนทับค่าเริ่มต้นของ PHP ที่เป็นค่าเริ่มต้นและไม่มีเอกสารประกอบ?!
Phil Cross

หากคุณกำลังอ่านสิ่งนี้และคุณกำลังใช้ ExpressionEngine (ซึ่งสร้างขึ้นจาก CodeIgniter) ... ดี - เดาว่าอะไร - EE จะแทนที่การแทนที่ CI! คุณจะต้องแก้ไขทั้ง /system/codeigniter/system/core/Codeigniter.php บรรทัด 106, AND /system/expressionengine/libraries/Core.php บรรทัดที่ 64 นั่นเป็นความสนุกตลอดสามชั่วโมงในชีวิตของฉันที่ค้นพบว่า .. .
แจ็ค

@PhilCross หากคุณรู้จักฟังก์ชันที่ต้องใช้เวลามากขึ้นคุณสามารถใช้คำแนะนำของ Jessและวางไว้set_time_limit(0);ในฟังก์ชันนั้นได้ คุณไม่จำเป็นต้องเปลี่ยนแกนหลัก: คำสั่งนี้จะรีเซ็ตการ จำกัด เวลาดังนั้นคุณไม่จำเป็นต้องกังวลเกี่ยวกับบรรทัดอื่น ๆ ในแกนหลักหรือในแพ็คเกจอื่น ๆ ในขณะที่เรียกใช้ฟังก์ชันเฉพาะนั้น
Armfoot


6

นี่คือคำตอบที่ถูกต้อง:

ไปที่

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

ค้นหาและตั้งค่า

$cfg['ExecTimeLimit'] = 0;

เริ่มบริการทั้งหมดใหม่และเสร็จสิ้น


คำตอบที่สมบูรณ์แบบขอบคุณ @llioor
kach

5

ไปที่ xampp / phpmyadmin / libraries / config.default.php

และทำการเปลี่ยนแปลงต่อไปนี้

from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;

3

สำหรับผู้ใช้ Xampp

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.

1

เวลาดำเนินการเริ่มต้นของ CLI ของ PHP ไม่มีที่สิ้นสุด

ค่านี้กำหนดเวลาสูงสุดเป็นวินาทีที่สคริปต์ได้รับอนุญาตให้ทำงานก่อนที่จะถูกยกเลิกโดยตัวแยกวิเคราะห์ วิธีนี้ช่วยป้องกันไม่ให้สคริปต์ที่เขียนไม่ดีจากการผูกเซิร์ฟเวอร์ ค่าเริ่มต้นคือ 30 เมื่อเรียกใช้ PHP จากบรรทัดคำสั่งค่าเริ่มต้นคือ 0

http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time

ตรวจสอบว่าคุณกำลังใช้งาน PHP ในเซฟโหมดหรือไม่เพราะจะไม่สนใจการตั้งค่าผู้บริหารตลอดเวลาเมื่ออยู่ในนั้น


1

สำหรับ Local AppServ

ไปที่ C: \ AppServ \ www \ phpMyAdmin \ libraries \ config.default.php

หา $cfg['ExecTimeLimit']และตั้งค่าเป็น 0

มันจะเป็นอย่างไร

$cfg['ExecTimeLimit'] = 0;

1

หากคุณใช้ xampp และใช้ phpMyadmin เพื่อนำเข้าไฟล์ sql ขนาดใหญ่และคุณได้เพิ่มเวลา max_execution ขึ้นขีด จำกัด การอัปโหลดไฟล์สูงสุดและทุกสิ่งที่จำเป็นและหากไม่มีคำตอบข้างต้นที่เหมาะกับคุณ

ไปที่โฟลเดอร์ xampp ของคุณในกรณีของฉันนี่คือเส้นทางสัมพัทธ์ไปยังไฟล์ที่ฉันต้องแก้ไข: C: \ xampp \ phpMyAdmin \ libraries \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;


0

ผู้ใช้ WAMP:

1) ไปที่ C: \ wamp \ apps \ phpmyadmin

2) เปิด config.inc

3) เพิ่ม $ cfg ['ExecTimeLimit'] = '3600′; ไปยังไฟล์

4) บันทึกไฟล์และรีสตาร์ทเซิร์ฟเวอร์

ไฟล์นี้เขียนทับ php.ini และจะทำงานให้คุณ!


0

ในกรณีของฉันเมื่อฉันพบข้อผิดพลาดนั้นใน Phpmyadmin ฉันลองใช้MySQL-Frontและนำเข้าฐานข้อมูลของฉันสำเร็จ

หมายเหตุ: คุณยังคงสามารถใช้วิธีแก้ปัญหาที่มีให้ในคำถามนี้เพื่อแก้ปัญหาของคุณใน Phpmyadmin


Hier gibt es nichts zu sehen ... :-)
rahul

0

หากคำตอบข้างต้นใช้ไม่ได้ผลให้ลองตรวจสอบรหัสของคุณจากประสบการณ์ของฉันการวนซ้ำไม่สิ้นสุดก็จะทำให้เกิดปัญหานั้นเช่นกันตรวจสอบคำสั่งอื่นของคุณหาก


0

ใน Codeignitor เวอร์ชัน 3.0.x ระบบ / core / Codeigniter.php ไม่มีข้อ จำกัด ด้านเวลาเช่นเดียวกับการแทรก

ini_set('MAX_EXECUTION_TIME', -1);  

จะไม่ทำงานเนื่องจาก codeignitor จะแทนที่ด้วยฟังก์ชัน set_time_limit () ของตัวเอง ดังนั้นคุณต้องลบฟังก์ชันนั้นออกจาก codeignitor หรือเพียงแค่ใส่เข้าไป

set_time_limit('1000');

ในตอนต้นของไฟล์ php หากคุณต้องการเปลี่ยนเป็น 1,000 วินาที ตั้งเวลาเป็น 0 (ศูนย์) หากคุณต้องการเรียกใช้นานเท่าที่ต้องการ


0

บน Xampp ใน php.ini คุณต้องตรวจสอบ mysql.connect_timeout ด้วย ตัวอย่างเช่นเปลี่ยนเป็น:

mysql.connect_timeout = 3600

เวลานั้นจะนับเป็นวินาทีเสมอ (ดังนั้น 1 ชั่วโมงในตัวอย่างของฉัน)


0

MAMP USERS แก้ไข php.ini แก้ปัญหานี้ - มีบรรทัด:

max_execution_time = 30; เวลาดำเนินการสูงสุดของแต่ละสคริปต์เป็นวินาที

การตั้งค่านี้เป็นค่าที่สูงขึ้นได้ผล

ไฟล์อยู่ใน php / php5.6.25 / conf / php.ini (เห็นได้ชัดว่าคุณต้องทำให้ไฟล์เปียกสำหรับเวอร์ชัน php ที่คุณใช้อยู่ - คุณสามารถค้นหาสิ่งนี้ได้จากการตั้งค่า MAMP


0

บน wamp ในคอนฟิกูเรชันของฉันที่ฉันมี phpmyadmins หลายตัวค่าในไฟล์ config จะถูกเขียนทับในwamp/alias/phpmyadmin.conf. ฉันตั้งค่าสองบรรทัดที่นั่น:

1. php_admin_value max_execution_time 3600

2. php_admin_value max_input_time 3600

... ในที่สุดก็ได้ผล!


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.