Rất có thể, máy chủ của bạn đang chạy bản sao PHP với bản vá Suhoshin được cài đặt. Bản vá này cung cấp một số lượng lớn các tính năng bảo mật và nâng cao hoạt động cho PHP, bao gồm việc cho phép máy chủ vô hiệu hóa các chức năng như set_time_limit()
.
Có nhiều cách khác mà máy chủ có thể tắt chức năng set_time_limit()
, nhưng đó là khả năng nhất. (đặc biệt là bạn đã loại trừ Chế độ An toàn)
Tại sao chúng sẽ vô hiệu hóa chức năng này? Bởi vì một hàm PHP mất nhiều thời gian để chạy cũng thường mất rất nhiều tài nguyên máy chủ; trong một môi trường lưu trữ được chia sẻ, nó là khôn ngoan cho các máy chủ để giảm thiểu loại điều để tránh có một kịch bản rogue tác động đến người dùng khác.
Bạn có thể làm gì với ứng dụng này?
Trước hết, bạn có chắc chắn bạn cần đặt giới hạn thời gian không? Bạn có biết tại sao kịch bản của bạn mất nhiều thời gian để chạy? Bạn có thể làm việc xung quanh nó? Có lẽ làm một chút lược tả trên mã của bạn có thể giúp bạn tìm thấy các nút cổ chai và tăng tốc độ chương trình.
Ngoài ra, nếu bạn thực sự cần đặt giới hạn thời gian, bạn có thể cần yêu cầu máy chủ lưu trữ cho phép bạn làm như vậy hoặc nâng cấp gói của bạn hoặc chuyển nhà cung cấp dịch vụ lưu trữ.
Máy chủ lưu trữ ghi đè ghi đè của bạn ?, nếu bạn đặt 'set_time_limit (0)' trong vòng lặp, nó sẽ đặt lại thời gian về 0 trên mỗi lần lặp. –
@LawrenceCherone bạn có chắc chắn không? –
Chỉ cần biết rằng 'set_time_limit (XX)' đã giải quyết được vấn đề của tôi. Có lẽ các máy chủ khác nhau có các quy tắc/cấu hình khác nhau. 'Php_value max_execution_time XX' không thực hiện thủ thuật. – nobug