Trang chủ » làm thế nào để » Cách tăng giới hạn kích thước tải lên tệp PHP

    Cách tăng giới hạn kích thước tải lên tệp PHP

    Nếu bạn đã có một ứng dụng web tải các tệp lên máy chủ thông qua tập lệnh PHP, bạn có thể nhận thấy rằng theo mặc định, bạn không thể tải lên các tệp lớn khủng khiếp. Đây là cách thay đổi nó.

    Lý do giới hạn được đặt khá thấp theo mặc định là vì lý do ổn định và bảo mật - một tập lệnh hoặc kẻ tấn công độc hại có thể cố gắng làm DoS máy chủ của bạn với các tệp tải lên lớn và tạm thời tắt ứng dụng của bạn.

    Để thay đổi các giá trị bạn sẽ cần chỉnh sửa tệp php.ini, thường được tìm thấy tại đường dẫn tệp này:

    /etc/php.ini

    Dưới đây là các cài đặt bạn muốn thay đổi:

    post_max_size
    Cài đặt này kiểm soát kích thước của bài đăng HTTP và nó cần được đặt lớn hơn cài đặt upload_max_filesize.

    upload_max_filesize
    Giá trị này đặt kích thước tối đa của tệp tải lên.

    giới hạn bộ nhớ
    Bạn sẽ muốn đảm bảo giới hạn bộ nhớ tập lệnh của mình được đặt ở kích thước phù hợp, có thể lớn hơn một trong hai cài đặt còn lại.

    Đặt các biến

    Bạn có thể đặt các giá trị bằng cách sử dụng giá trị số theo sau là M cho số lượng MB bạn muốn phân bổ cho từng biến. Ví dụ: để cho phép các tệp 20 MB được tải lên, bạn sẽ sử dụng một cái gì đó như thế này:

    bộ nhớ_limit = 64M
    upload_max_filesize = 20M
    post_max_size = 25M

    Bạn sẽ cần khởi động lại máy chủ Apache của mình sau khi bạn thực hiện thay đổi này, bằng lệnh này:

    /etc/init.d/httpd khởi động lại

    Đặt kích thước tải lên cho mỗi ứng dụng

    Bạn có thể thay đổi cài đặt này cho một ứng dụng web cụ thể bằng cách đặt nó vào tệp .htaccess thay vào đó, trong thư mục của ứng dụng. Lưu ý rằng điều này sẽ chỉ hoạt động nếu máy chủ của bạn đã kích hoạt ghi đè cho máy chủ hoặc máy chủ ảo của bạn.

    Chẳng hạn, bạn có thể đặt những thứ sau vào tập tin:

    bộ nhớ php_value_limit = 64M
    php_value upload_max_filesize = 20M
    php_value post_max_size = 25M

    Khi bạn lưu tệp, các thay đổi sẽ được áp dụng.