Nếu bạn có ứng dụng web tải 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 bảo mật và sự cố - một tập lệnh độc hại hoặc kẻ tấn công có thể cố gắng thực hiện 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 cần chỉnh sửa tệp php.ini, thường thấy ở đườ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 phải đượ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 đặt thành 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 mỗi biến. Ví dụ: để cho phép tải lên 20MB tệp, bạn sẽ sử dụng một cái gì đó như thế này:
memory_limit = 64M upload_max_filesize = 20M post_max_size = 25M
Bạn sẽ cần phải 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, với lệnh này:
/etc/init.d/httpd restart
Đặ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 đã bật ghi đè cho máy chủ hoặc máy chủ ảo của bạn.
Ví dụ: bạn có thể đặt các thông tin sau vào tệp:
php_value memory_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.