Hướng dẫn dùng time oit trong PHP

Làm thế nào để tăng thời gian chờ giao dịch? Tôi muốn tải lên video, nhưng kích thước lớn của video không được tải lên?

Nó ném lỗi The process *** exceeded the timeout of 60 seconds.

Bạn cần thay đổi một số cài đặt trong php.ini của mình:

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 của bạn được đặt tùy thuộc vào môi trường của bạn, thông tin thêm: http://php.net/manual/en/ini.list.php

Bạn cũng có thể thực hiện trong thời gian chạy bằng cách sử dụng

set_time_limit(100);

http://php.net/manual/en/feft.set-time-limit.php

hoặc trong vhost-config của bạn

php_admin_value max_execution_time 10000

Có giới hạn thời gian thực hiện toàn cầu là THẤP hầu hết là một ý tưởng tốt cho lý do hiệu năng trên các ứng dụng không đáng tin cậy. Vì vậy, bạn có thể muốn chỉ cho phép các tập lệnh đó chạy lâu hơn mà hoàn toàn phải có.

p.s.: Đừng quên về post_max_size và upload_max_filesize (giống như câu trả lời đầu tiên đã nói với all rồi)

Để hoàn thành câu trả lời của Hannes.

Bạn cần thay đổi một số cài đặt trong php.ini của mình:

upload_max_filesize = 2M 
;or whatever size you want

max_execution_time = 60
; also, higher if you must

Nếu ai đó muốn đặt không giới hạn (tôi không biết tại sao nhưng nếu bạn muốn), bạn có thể đặt hai lần thành 0:

Bạn cần thay đổi một số cài đặt trong php.ini của mình:

upload_max_filesize = 0 

max_execution_time = 0

Và nếu bạn không biết php.ini của bạn ở đâu. Bạn có thể thực hiện một tệp "name.php" trong máy chủ của mình và đặt:


Và trên trang web của bạn, bạn có thể thấy cấu hình của php.ini và nó được đánh dấu ở đâu.

Chỉnh sửa vào ngày 9 tháng 1 năm 2015:

Nếu bạn không thể truy cập php.ini, bạn có thêm hai tùy chọn.

Bạn có thể đặt dòng này trực tiếp trong tệp "name.php" của mình nhưng tôi không tìm thấy upload_max_filesize cho tùy chọn này:

set_time_limit(0);

Hoặc trong ".htaccess"

php_value upload_max_filesize 0
php_value max_execution_time 0

nếu những gì bạn cần làm chỉ cụ thể cho 1 hoặc 2 trang tôi đề nghị sử dụng set_time_limit vì vậy nó không ảnh hưởng đến toàn bộ ứng dụng.

set_time_limit(some_values);

nhưng tất nhiên 2 giá trị này (post_max_size & upload_max_filesize) phải được điều tra.

bạn có thể đặt nó qua ini_set function

ini_set('post_max_size','20M');
ini_set('upload_max_filesize','2M');

hoặc trực tiếp trong tệp php.ini như phản hồi ở trên của Hannes hoặc thậm chí đặt iin .htaccess như bên dưới

php_value upload_max_filesize 2M
php_value post_max_size 20M

Bạn đã có một lỗi đánh máy: ini_set ('max_input_time', '200M') - tập giá trị cần phải là một int, như ini_set ('max_input_time', '200')

Nếu bạn tình cờ sử dụng máy chủ Microsoft IIS, ngoài các cài đặt php.ini được đề cập bởi người khác, bạn có thể cần tăng cài đặt thời gian thực hiện cho PHP Ứng dụng FastCGI trong IIS Trình quản lý máy chủ:

Bước 1) Mở IIS Trình quản lý máy chủ (thường ở dưới Trình quản lý máy chủ trong Menu Bắt đầu, sau đó Công cụ/Trình quản lý dịch vụ thông tin Internet (IIS) ).

Bước 2) Nhấp vào kết nối chính (không dành riêng cho bất kỳ tên miền cụ thể nào).

Bước 3) Trong phần IIS, tìm Cài đặt FastCGI (hiển thị bên dưới).

Hướng dẫn dùng time oit trong PHP

Bước 4) Trong đó, nhấp chuột phải vào ứng dụng PHP và chọn Chỉnh sửa ....

Bước 5) Kiểm tra thời gian chờ (hiển thị bên dưới).

Trong trường hợp của tôi, thời gian chờ mặc định ở đây là 70 và 90 giây; trước đây đã gây ra một 500 Lỗi máy chủ nội bộ trên các tập lệnh PHP mất hơn 70 giây.

Nếu bạn không thể chỉnh sửa php.ini (trên máy chủ của bạn chẳng hạn), bạn có thể cố gắng thay đổi các tham số php.ini từ bên trong mã php của mình. Thử:

ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');

Nếu điều đó không hiệu quả, hãy thử đặt 'set_time_limit' theo cách tương tự, ngoài ra tôi muốn nói rằng lựa chọn duy nhất của bạn là liên hệ với Chủ nhà. Các cài đặt này không thể được sửa đổi trong khi ở chế độ an toàn.

Tôi biết bạn đang hỏi cụ thể về thời gian chờ PHP, nhưng điều mà không ai khác có thể đề cập là cũng có thể có thời gian chờ trên máy chủ web và nó có thể trông rất giống với thời gian chờ PHP.

Vì vậy, nếu bạn đã thử:

  1. Tăng thời gian chờ trong php.ini bằng cách thêm một dòng: max_execut_time = {số giây tức là 60 trong một phút}
  2. Tăng thời gian chờ trong chính tập lệnh của bạn bằng cách thêm: ini_set ('max_execut_time', '{số giây tức là 60 trong một phút}');

Và bạn đã kiểm tra với hàm phpinfo () rằng max_execut_time thực sự đã được tăng lên, sau đó bạn có thể muốn thử thêm nó vào .htaccess để đảm bảo rằng chính Apache không hết thời gian:

RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]

Thêm thông tin ở đây: https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/

Kiểm tra xem bạn có ở chế độ an toàn không - nếu không - đặt giới hạn thời gian (Giá trị cục bộ) thành những gì bạn muốn:

if(!ini_get('safe_mode')){

    echo "safe mode off";
    set_time_limit(180);// seconds

    phpinfo();// see 'max_execution_time'
}

* Bạn không thể đặt giới hạn thời gian theo cách này nếu chế độ an toàn 'bật'.

Trước tiên hãy kiểm tra đường dẫn tệp php.ini bằng phpinfo (); và sau đó thay đổi thông số PHP.INI:

upload_max_filesize = 1000M
memory_limit = 1500M
post_max_size = 1500M
max_execution_time = 30

restarted Apache

set_time_limit (0); // safe_mode đã tắt

ini_set ('max_execut_time', 500); // 500 giây

Lưu ý : bạn cũng có thể sử dụng lệnh để tìm php.ini trong linux

locate php.ini