Lỗi nghiêm trọng: Đã vượt quá thời gian thực thi tối đa 300 giây


89

Tôi tiếp tục gặp lỗi PHP này:

Lỗi nghiêm trọng: Đã vượt quá thời gian thực thi tối đa 300 giây

Tôi đã cố gắng thiết lập của tôi max_execution_timevà tôi max_input_timethiết lập trong php.ini (cả apache và cli) để 0, -14000giây mỗi.

Và tôi vẫn gặp lỗi khi nói:

Lỗi nghiêm trọng: Đã vượt quá thời gian thực thi tối đa 300 giây

Cũng như tập lệnh của tôi chạy hơn 300 giây trước khi tôi nhận được thông báo này

Tôi đang chạy tập lệnh thông qua dòng lệnh.

Tôi cũng đã kiểm tra của tôi phpinfo()để xem php.initôi đang sử dụng.

Thú vị hơn nữa, tôi đã thử cài đặt max_execution_timemax_input_timecài đặt thành 5 giây và tập lệnh của tôi sẽ chạy quá 5 giây trước khi tôi nhận được:

Lỗi nghiêm trọng: Đã vượt quá thời gian thực thi tối đa 300 giây


Bạn đang sử dụng loại thiết lập máy chủ nào?
Pekka

1
Điều này thật lạ, tôi gặp vấn đề tương tự trên apache 2.4.18 và php 7 ... Sử dụng PHPMyAdmin để nhập sql .. phpinfo (); báo cáo thời gian khác nhau .. Tôi sẽ thử cài đặt ini mà tôi đoán :(
Michael Fever

vấn đề tương tự, tôi cố gắng đặt set_time_limit (3603); ini_set ('max_execution_time', 3604); nhưng cả hai đều không có tác dụng, thời gian thực hiện tối đa vẫn là 360.
Infor Mat

Câu trả lời:


68

Ở đầu tập lệnh của bạn, bạn có thể thêm.

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

2
thêm nó ở đầu rất của file php của bạn
Tules

2
Dòng mã này sẽ giảm giới hạn thời gian thực thi tối đa của mã, cho phép mã php chạy mãi mãi (về mặt lý thuyết).
Technotronic

2
trong script nào?
Sagar Kodte

Hoặc set_time_limit(0);= giống nhau.
Íhor Mé

99

Nếu bạn đang sử dụng WAMP, hãy truy cập:

Tăng max_execution_timetrong php.inisau đó đi đến

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (thay đổi đường dẫn theo cài đặt của bạn)

mở config.default.phpvà thay đổi giá trị $cfg['ExecTimeLimit']thành 0:

$cfg['ExecTimeLimit'] = 0;

Điều này sẽ giải quyết vấn đề cho các lần nhập PhpMyAdmin.


@Vipin, giải pháp của bạn đã giúp tôi, đặc biệt là config.default.php ;-)
Rishi Kulshreshtha

Vui vẻ giúp đỡ ! Chúc mừng :)
Vipin Dubey

cảm ơn bạn, sau hàng giờ đồng hồ thất vọng khi cố gắng nâng cấp 500 MB DB lên phiên bản mới hơn của moodle ...... Tôi đã thành công. Cụ thể là tâm trạng 2.2 - 2.6.
jamesTheProgrammer

2
Cảm ơn câu trả lời này! Đã giải quyết sự cố của tôi sau khi nhận ra rằng việc đặt thời gian thực thi tối đa trong php.ini là không nên!
Rimble

1
config.default.phprất rõ ràng về việc không chỉnh sửa nó, yêu cầu chúng tôi chỉnh sửa config.inc.phpthay thế. Tôi đã cố gắng tìm nó và không thể, vì vậy tôi đã tự làm và thêm vào <?php $cfg['ExecTimeLimit'] = 3000; ?>. Điều này không làm gì cả. Tôi quyết định thử và làm điều đó config.default.phpvà nó đã hoạt động !! Làm thế nào chúng ta phải làm cho config.inc.phpcông việc?!?
BillyNair

67

Người dùng Xampp

  1. Đi đến xampp\phpMyAdmin\
  2. Mở config.inc.php
  3. Tìm kiếm $cfg['ExecTimeLimit'] = 300;
  4. Đặt giá trị lớn hơn hoặc thay đổi thành 0 để không giới hạn
  5. Nếu không tìm thấy, hãy thêm $cfg['ExecTimeLimit'] = 0;(hoặc một giá trị lớn hơn)
  6. Lưu tệp và khởi động lại máy chủ

8
Đây thực sự là điều duy nhất phù hợp với tôi. Vì vậy, cảm ơn đã đăng. Trong thiết lập của tôi, $ cfg ['ExecTimeLimit'] = 300; không tồn tại trong config.inc.php vì vậy tôi đã thêm nó vào đó thay vì thay đổi giá trị trong config.default.php - có một thông báo khá lớn nói rằng không được chạm vào mã trong tệp đó;)
Ian

4
cảm ơn bạn đã đánh dấu khởi động lại máy chủ . điểm quan trọng nhất đáng quên.
Pradeep Kumar Prabaharan

4
Có một ghi chú trong tệp config.default.php có nội dung "Không !! Không chỉnh sửa". Tôi đã thêm $ cfg ['ExecTimeLimit'] = 0; vào tệp config.inc.php của tôi vì nó không tồn tại và nó dường như hoạt động.
brandozz

1
bài viết này tiết kiệm ngày của tôi và giúp tôi lần thứ hai !!! Làm thế nào tôi có thể cộng một sau 3 tháng ???
saber tabatabaee yazdi

24

Tôi đã gặp phải một tình huống tương tự và hóa ra là Codeigniter (khuôn khổ PHP mà tôi đang sử dụng) thực sự đặt giới hạn thời gian của riêng nó:

Trong system / core / Codeigniter.php, dòng 106 trong phiên bản 2.1.3 xuất hiện như sau:

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

Vì không có cách nào khác để tránh thay đổi tệp lõi, tôi đã xóa nó để cho phép cấu hình thông qua php.ini, cũng như cung cấp thời gian thực thi tối đa vô hạn cho một yêu cầu CLI.

Tuy nhiên, tôi khuyên bạn nên ghi lại thay đổi này ở đâu đó trong trường hợp nâng cấp phiên bản CI trong tương lai.


7
OH. CỦA TÔI. CHÚC MỪNG. Tôi không thể tin điều này. Tại sao thế giới đẫm máu họ lại giới hạn thời gian thực hiện trên tất cả các giới hạn thời gian thực hiện khác đã tồn tại? Tôi đã lãng phí hàng giờ cho việc này. Cảm ơn đã đăng bài viết.
crazy4jesus

1
Thật không thể tin được. Đã nhận xét ra dòng và hoạt động! Tại sao CI lại ghi đè mặc định mặc định của PHP và không cung cấp tài liệu về nó ?!
Phil Cross

Nếu bạn đang đọc nó và bạn đang sử dụng ExpressionEngine (được xây dựng trên CodeIgniter) ... Chà - đoán xem - EE ghi đè ghi đè của CI! Bạn sẽ cần chỉnh sửa cả /system/codeigniter/system/core/Codeigniter.php dòng 106, AND /system/expressionengine/libraries/Core.php, dòng 64. Đó là ba giờ thú vị trong đời tôi khi khám phá ra điều đó .. .
Jack

@PhilCross nếu bạn biết hàm cần thực thi thêm thời gian, bạn có thể sử dụng gợi ý của Jess và đặt set_time_limit(0);bên trong hàm đó. Bạn không cần phải thay đổi lõi: hướng dẫn này sẽ đặt lại giới hạn thời gian, vì vậy bạn không cần phải lo lắng về các dòng khác trong lõi hoặc trong các gói khác khi chạy chức năng cụ thể đó.
Armfoot

9

Hãy thử một cái gì đó như sau trong tập lệnh của bạn:

set_time_limit(1200);

3
set_time_limit(0);làm cho tập lệnh của bạn chạy mãi mãi.
Jonathon

23
set_time_limit(0); cho phép tập lệnh của bạn chạy mãi mãi.
Jess Telford

6

Đây là câu trả lời đúng:

đi đến

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

tìm và đặt

$cfg['ExecTimeLimit'] = 0;

khởi động lại tất cả các dịch vụ và hoàn tất.


Câu trả lời hoàn hảo, Thank's @llioor
kach

5

đi tới xampp / phpmyadmin / Library / config.default.php

và thực hiện các thay đổi sau

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

3

Đối với người dùng 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

Thời gian thực thi mặc định CLI của PHP là vô hạn.

Điều này đặt thời gian tối đa tính bằng giây mà một tập lệnh được phép chạy trước khi nó bị kết thúc bởi trình phân tích cú pháp. Điều này giúp ngăn chặn các tập lệnh được viết kém gắn máy chủ. Cài đặt mặc định là 30. Khi chạy PHP từ dòng lệnh, cài đặt mặc định là 0.

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

Kiểm tra xem bạn có đang chạy PHP ở chế độ an toàn hay không, vì nó bỏ qua cài đặt thực thi mọi lúc khi ở trên đó.


1

Đối với AppServ địa phương

Đi tới C: \ AppServ \ www \ phpMyAdmin \ thư viện \ config.default.php

Tìm $cfg['ExecTimeLimit']và đặt giá trị thành 0.

Vì vậy, nó sẽ giống như

$cfg['ExecTimeLimit'] = 0;

1

Nếu bạn đang sử dụng xampp và sử dụng phpMyadmin để nhập các tệp sql lớn và bạn đã tăng thời gian thực thi max_execution, giới hạn tải lên tệp tối đa và mọi thứ cần thiết Và nếu không có câu trả lời nào ở trên phù hợp với bạn, hãy vào đây

Đi tới thư mục xampp của bạn, trong trường hợp của tôi, đây là đường dẫn liên quan đến tệp mà tôi cần sửa đổi: C: \ xampp \ phpMyAdmin \ library \ 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;


hoạt động $ cfg ['ExecTimeLimit'] = 0; . cảm ơn
MindRoasterMir

0

NGƯỜI DÙNG WAMP:

1) Đi tới C: \ wamp \ apps \ phpmyadmin

2) Mở config.inc

3) Thêm $ cfg ['ExecTimeLimit'] = '3600 ′; vào tệp.

4) Lưu tệp và khởi động lại máy chủ.

Tệp này ghi đè php.ini và sẽ hoạt động cho bạn!


0

Trong trường hợp của tôi, khi gặp lỗi đó trong Phpmyadmin, tôi đã thử MySQL-Front và nhập thành công DB của mình.

Lưu ý: Bạn vẫn có thể sử dụng các giải pháp được cung cấp trong câu hỏi này để giải quyết vấn đề của mình trong Phpmyadmin.


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

0

Nếu các câu trả lời trên không hoạt động, hãy thử kiểm tra mã của bạn, Theo kinh nghiệm của tôi, có một vòng lặp vô hạn cũng sẽ gây ra vấn đề đó. Hãy kiểm tra câu lệnh else if của bạn.


0

Trong phiên bản Codeignitor 3.0.x system / core / Codeigniter.php không chứa giới hạn thời gian cũng như chèn

ini_set('MAX_EXECUTION_TIME', -1);  

sẽ không hoạt động vì codeignitor sẽ ghi đè điều đó bằng hàm set_time_limit () của chính nó. Vì vậy, bạn phải xóa chức năng đó khỏi bộ mã hoặc đơn giản là bạn có thể chèn

set_time_limit('1000');

ở đầu tệp php nếu bạn muốn thay đổi thành 1000 giây. Đặt thời gian thành 0 (không) nếu bạn muốn chạy nó bao lâu cũng được.


0

Trên Xampp, trong php.ini, bạn cũng phải kiểm tra mysql.connect_timeout. Vì vậy, ví dụ, thay đổi nó thành:

mysql.connect_timeout = 3600

Thời gian đó sẽ luôn được tính bằng giây (trong ví dụ của tôi là 1 giờ)


0

MAMP USERS chỉnh sửa php.ini giải quyết vấn đề này - có một dòng:

max_execution_time = 30; Thời gian thực thi tối đa của mỗi tập lệnh, tính bằng giây

đặt giá trị này thành giá trị cao hơn đã hoạt động.

tệp ở dạng php / php5.6.25 / conf / php.ini (hiển nhiên là bạn cần làm ướt tệp cho phiên bản php mà bạn đang sử dụng - bạn có thể tìm hiểu điều này từ tùy chọn MAMP.


-1

Bạn có thể đặt giới hạn thời gian:

ini_set('max_execution_time', 1000000000000000);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.