Tôi đang tải xuống một tệp JSON từ một nguồn trực tuyến và khi nó chạy qua vòng lặp, tôi gặp phải lỗi này:
Lỗi nghiêm trọng: Thời gian thực hiện tối đa 30 giây vượt quá trong C: \ wamp \ www \ temp \ fetch.php trên dòng 24
Tôi đang tải xuống một tệp JSON từ một nguồn trực tuyến và khi nó chạy qua vòng lặp, tôi gặp phải lỗi này:
Lỗi nghiêm trọng: Thời gian thực hiện tối đa 30 giây vượt quá trong C: \ wamp \ www \ temp \ fetch.php trên dòng 24
Câu trả lời:
Vòng lặp của bạn có thể là vô tận. Nếu không, bạn có thể kéo dài thời gian thực hiện tối đa như thế này:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
và
set_time_limit(300);
có thể được sử dụng để tạm thời kéo dài thời gian giới hạn.
Tôi đã có cùng một vấn đề và giải quyết nó bằng cách thay đổi giá trị cho param max_execution_time
trong php.ini
, như thế này:
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)
Tôi hy vọng điều này có thể giúp bạn.
php.ini
có thể được tìm thấy trong /etc/php5/apache2/php.ini
.... Tôi đang sử dụng Ubuntu 13.04 ...
Tất cả các câu trả lời ở trên là chính xác, nhưng tôi sử dụng một cách đơn giản để tránh nó trong một số trường hợp.
Chỉ cần đặt lệnh này vào đầu tập lệnh của bạn:
set_time_limit(0);
Tôi gặp vấn đề này trong khi nâng cấp lên WordPress 4.0 . Theo mặc định, WordPress giới hạn thời gian thực hiện tối đa là 30 giây.
Thêm mã sau vào tệp .htaccess của bạn trên thư mục gốc của Cài đặt WordPress để vượt quá mặc định.
php_value max_execution_time 300 //where 300 = 300 seconds = 5 minutes
Chỉnh sửa php.ini
Tìm dòng này:
max_execution_time
Thay đổi giá trị của nó thành 300:
max_execution_time = 300
300 có nghĩa là 5 phút thời gian thực hiện cho yêu cầu http.
Kịch bản của bạn đã hết thời gian. Hãy xem hàm set_time_limit () để tăng thời gian thực hiện. Hoặc hồ sơ kịch bản để làm cho nó chạy nhanh hơn :)
nếu tất cả các cách trên không phù hợp với bạn thì hãy thêm một .htaccess
tệp vào thư mục chứa tập lệnh của bạn và đặt tệp này vào trong
<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>
đây là cách tôi giải quyết vấn đề của mình, ini_set('max_execution_time', 86400);
cũng không set_time_limit(86400)
giải quyết được vấn đề của mình, nhưng phương pháp .htaccess đã làm được.
Bạn có thể xóa giới hạn bằng cách đặt nó về 0 bằng cách thêm dòng này ở đầu tập lệnh của bạn:
<?php ini_set('max_execution_time', 0); ?>
Theo con đường /etc/php5(your php version)/apache2/php.ini
.
Mở nó và đặt giá trị của max_execution_time
một mong muốn.
Có thể kiểm tra mọi thứ bạn đã thay đổi trong tệp php.ini. Ví dụ: tôi đã thay đổi "; intl.default_locale =" thành "; intl.default_locale = en_utf8" để bật "Tiện ích mở rộng quốc tế hóa (Intl)" mà không thêm "extension = php_intl.dll" thì cũng xảy ra lỗi tương tự. Vì vậy, tôi đề nghị kiểm tra các lỗi tương tự.
Tăng thời gian thực hiện tập lệnh của bạn bằng cách thêm dòng sau vào đầu tập lệnh PHP.
ini_set('max_execution_time', 120); //120 seconds = 2 minutes
Tham chiếu được lấy từ Tăng thời gian thực thi tập lệnh PHP
Để mở rộng, max_execution_time
bạn có thể sử dụng ini_set
hoặc 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)
//
Vì vậy, nếu bạn muốn đặt chính xác lượng thời gian tối đa của tập lệnh có thể chạy, lệnh của bạn phải là đầu tiên.
Sự khác biệt giữa hai chức năng này là
set_time_limit
không trả về thông tin cho dù nó đã thành công nhưng nó sẽ đưa ra cảnh báo về lỗi.ini_set
trả về giá trị cũ khi thành công hoặc sai khi thất bại mà không có bất kỳ cảnh báo / lỗi nàoTôi có một vấn đề tương tự trong trang web WordPress, tôi đã thêm vào tệp .htaccess sau đó hoạt động tốt cho tôi.
php_value max_execution_time 6000000
Tôi đã thực hiện một số thay đổi trong trường hợp của mình trong: xampp \ phpMyAdmin \ library \ config.default.php
tôi đã tìm kiếm: $cfg['ExecTimeLimit']
và thay đổi giá trị ở bên phải ...
Bạn có thể thay đổi Giá trị tay phải thành bất kỳ giá trị nào cao hơn, như '5000'. Và nó hoạt động.