Làm thế nào để tăng giới hạn tập tin tải lên từ 2MB đến 10MB trên máy chủ web Apache 2 UNIX/Linux? Thiết lập php của bạn có thể đặt giới hạn về kích thước tập tin tải lên. Mặc định sẽ hạn chế bạn với kích thước tập tin tải lên tối đa là 2 MB. Bạn cần phải thiết lập các tùy chọn cấu hình sau đây: post_max_filesize - Kích thước tối đa của một tập tin tải lên. memory_limit – Tùy chọn này thiết lập bộ nhớ tối đa theo định dạng byte mà một script được phép phân bổ. Điều này giúp ngăn chặn script xấu sử dụng tất cả các bộ nhớ có sẵn trên một máy chủ. Lưu ý rằng không có giới hạn bộ nhớ, thiết lập chỉ thị này để -1. post_max_size - Thiết lập kích thước tối đa của dữ liệu gửi được cho phép. Thiết lập này cũng ảnh hưởng đến tập tin tải lên. Để tải lên tập tin lớn, giá trị này phải lớn hơn post_max_filesize. Nếu memory_limit được kích hoạt bởi script cấu hình của bạn, memory_limit cũng ảnh hưởng đến tập tin tải lên. Nói chung, memory_limit nên được lớn hơn post_max_size. Có hai phương pháp sửa chữa vấn đề này: Phương pháp # 1: Chỉnh sửa file php.ini Chỉnh sửa tập tin php.ini của bạn (thường được lưu trữ trong /etc/php.ini hoặc /etc/php.d/cgi/php.ini hoặc /usr/local/etc/php.ini): Mã: vi /etc/php.ini Ví dụ kết quả đầu ra: Mã: memory_limit = 32M upload_max_filesize = 10M post_max_size = 20M Lưu lại và đóng tập tin. Khởi động lại apache hoặc lighttpd web server: Mã: service httpd restart Hoặc: Mã: service lighttpd restart Phương pháp # 2: Chỉnh sửa .htaccess Chỉnh sửa tập tin .htaccess trong thư mục root của bạn. Điều này rất hữu ích khi bạn không có quyền truy cập vào tập tin php.ini. Trong ví dụ này, /home/httpd/html được coi như là thư mục root (bạn cũng có thể tạo ra tập tin .htaccess và tải nó lên bằng client ftp/sftp/scp): Mã: vi /home/httpd/html/.htaccess Bổ sung hay chỉnh sửa thiết lập như sau: Mã: php_value upload_max_filesize 10M php_value post_max_size 20M php_value memory_limit 32M Lưu lại và đóng tập tin. Lưu ý về Suhosin (Tùy chọn) Suhosin không được cài đặt theo mặc định trên nhiều máy chủ (phiên bản mới nhất của Debian, Ubuntu, và FreeBSD không cài đặt Suhosin theo mặc định). Sử dụng phpinfo () để tìm hiểu xem Suhosin kích hoạt hay không (tạo tập tin test.php): Mã: <?php phpinfo(); ?> Nếu bạn đang sử dụng Suhosin được thiết kế để bảo vệ máy chủ của bạn chống lại một số vấn đề nổi tiếng trong các ứng dụng PHP và mặt khác chống lại các lỗ hổng tiềm năng trong các ứng dụng hoặc các lõi chính PHP. Bạn cần phải chỉnh sửa /etc/php.d/suhosin.ini để thiết lập bộ nhớ chính xác và giới hạn tải lên. Vì script không chạy trong safe_mode nên ta có thể tự do thay đổi memory_limit đến bất cứ giá trị nào. Mã: suhosin.memory_limit=32M