2009-10-19 63 views
11

Nếu tôi làm set_time_limit(50) hoặc ini_set('max_execution_time',50), sau đó khi tôi vang ini_get('max_execution_time') trên localhost của tôi tôi nhận được 50, nhưng khi tôi làm điều này trên máy chủ khác nó vang mặc định 30 và hoàn toàn bỏ qua yêu cầu của tôi . Tại sao điều này?ini_set, Hàm set_time_limit, (max_execution_time) - không làm việc

Trả lời

12

Bạn không thể thay đổi cài đặt này với ini_set() khi chạy trong chế độ an toàn. Cách giải quyết duy nhất là tắt chế độ an toàn hoặc bằng cách thay đổi giới hạn thời gian trong php.ini.

- PHP dẫn sử dụng, Runtime Configuration, description of max_execution_time

Nhiều host chạy trong chế độ an toàn. Máy chủ khác rất có thể là một trong số đó.

Edit: Các hạn chế tương tự được đặt ra trên set_time_limit:

Chức năng này không có tác dụng khi PHP đang chạy trong chế độ an toàn. Không có cách nào khác là giải quyết ngoài việc tắt chế độ an toàn hoặc thay đổi giới hạn thời gian trong php.ini.

- PHP dẫn sử dụng, set_time_limit trang

+0

Tôi sẽ cung cấp cho bạn kiểm tra câu trả lời nhưng tôi chỉ tìm ra trước khi tôi làm mới trang! ahhh! Nhưng sau đó, sẽ không xảy ra lỗi tập lệnh trong 30 giây? Tại sao nó nói với tôi "kết nối đến máy chủ đã được thiết lập lại" bất kỳ ý tưởng? – Mickey

+0

Khi đoán, PHP chỉ đóng kết nối mà không hoàn thành, do đó kết nối với máy chủ đã được đặt lại tin nhắn. Ngoài sự tò mò, bạn đang thực hiện những hoạt động nào kéo dài hơn 30 giây? Phải có một số cách để cắt giảm thời gian xử lý trừ khi bạn đang làm rất nhiều công việc với cơ sở dữ liệu XML hoặc chậm. – Powerlord

+0

Tôi phải kết nối với nhiều nhà cung cấp MLS qua thông số RETS (rets.org) để lấy dữ liệu danh sách. Khoảng 1k cho mỗi danh sách và? K cho khoảng 5-12 hình ảnh thô. Tôi chèn dữ liệu vào MySQL sau đó nó đi đến một kế tiếp, (trong một vòng lặp). Sau đó, nó phải mã hóa địa lý từng danh sách và một số ý nghĩa lạ mắt khác. – Mickey

1

GoDaddy có cho phép bạn chỉnh sửa tệp PHP.INI từ xa của họ hoặc (đạt được cùng chức năng) đặt các tùy chọn đó trong thời gian chạy không? Nhiều máy chủ hạn chế (và tôi không biết điều này về GoDaddy theo cách này hay cách khác) sẽ không cho phép bạn sử dụng các tùy chọn PHP thông qua tệp cấu hình hoặc thời gian chạy như bạn đã làm trên WAMP. Có thể là mặc dù bạn vẫn gọi chức năng đó, nó không được áp dụng.

Sử dụng

echo 'Time Limit = ' . ini_get('max_execution_time') . 

Tài liệu hướng dẫn nói rằng nếu nó được đặt ở tất cả trong PHP.INI, mà sẽ ghi đè lên thời gian chạy này. PHP Manual on set_time_limit

+0

chạy cái gì khác, điều gì đó ngắn hơn/dễ dàng hơn và kiểm tra phản hồi. – markus

+0

tôi đã phải chỉnh sửa lại câu hỏi của tôi, cảm ơn sự giúp đỡ của bạn cho đến nay. – Mickey

1

Bạn có thể thay đổi max_execution_time.
Tải lên 1 dòng (max_execution_time = 600) php5.ini vào thư mục gốc của bạn (nơi php.ini cư trú).

Các vấn đề liên quan