2011-07-05 27 views
5

Tôi muốn nhận một tệp hợp lý lớn (khoảng 45-50M) từ người dùng ứng dụng của tôi, và sau đó di chuyển tệp đó đến một số máy chủ khác.Những thay đổi cấu hình này có phù hợp với nhu cầu của tôi không?

Tôi đã thực hiện các thay đổi sau đối với tệp cấu hình, ai đó có thể vui lòng nhận xét cách tôi đã thực hiện hoặc nếu có bất kỳ thay đổi nào, vui lòng đề xuất.

Tôi muốn biết những thay đổi này có đáp ứng các yêu cầu của tôi (tải lên tệp lớn không có thời gian) hay không?

Thay đổi được thực để php.ini tập tin

max_execution_time = 0 
max_input_time = 900 
memory_limit = 128M 

upload_max_filesize = 50M 
post_max_size = 51M 

Changes để Apache httpd.conf file

Timeout 1800 

Cảm ơn.

+0

trông ok với tôi, bây giờ thử nghiệm nó. –

Trả lời

1

Tôi sẽ nói rằng bạn đồng ý với những giá trị đó - nhưng sẽ dễ dàng cho kẻ tấn công vào trang web của bạn bằng cách đập nó với tải lên rất lớn (không phải là vấn đề nếu ứng dụng riêng/intranet này)

2

Khi người dùng tải lên một tập tin cấu hình các giá trị sau đây là quan trọng và cần được thiết lập một cách chính xác:

  • PHP
    • file_uploads
    • upload_max_filesize
    • max_input_time
    • memory_limit
    • max_execution_time
    • post_max_size
  • Apache
    • LimitRequestBody

với LimitRequestBody, trên một số RPM tôi nstallation này được thiết lập để 0,5MB, nếu thsi được thiết lập sau đó bạn nên loại bỏ tất cả này với nhau hoặc nếu bạn có giới hạn nghiêm ngặt sau đó bạn có thể thiết lập đó.

Tôi cũng sẽ đầu tư vào việc sử dụng Node.JS phía sau Apache và chuyển tiếp tải lên quy trình đó, bằng cách này bạn có thể giảm rất nhiều dung lượng bộ nhớ bằng cách cài đặt thư viện tải lên đơn giản.

Khi tệp được tải lên, bạn có thể lưu trữ tệp trong tạm thời, tạo mã băm của nó, rồi chuyển hướng máy khách bằng cách gửi lại tiêu đề Location, sau đó chuyển hướng người dùng quay lại quá trình php đi qua băm, nơi bạn có thể sau đó xác định vị trí và khôi phục, vv

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