HƯỚNG DẪN Tăng giới hạn kích thước tải lên tập tin trong php

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 15/12/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    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 
     

Chia sẻ trang này

Đang tải...