Bạn đã bao giờ gặp phải thông báo lỗi “Request body no files data length is larger” khi đang cố gắng tải lên một tệp tin lớn qua DirectAdmin chưa? Đây là một trong những sự cố phổ biến nhất mà người quản trị website phải đối mặt, gây gián đoạn công việc và tạo ra không ít phiền toái. Về cơ bản, lỗi này xuất hiện khi kích thước dữ liệu bạn gửi lên vượt quá giới hạn đã được cấu hình sẵn trên máy chủ. Nguyên nhân sâu xa nằm ở các thiết lập trong file php.ini và cả trong chính DirectAdmin. Bài viết này sẽ là kim chỉ nam, hướng dẫn bạn từng bước chi tiết để “chẩn đoán” và “chữa trị” dứt điểm lỗi này, giúp quá trình upload dữ liệu của bạn trở nên mượt mà hơn.
Giới thiệu lỗi ‘Request body no files data length is larger’ trên DirectAdmin
Lỗi “Request body no files data length is larger” là một thông báo quen thuộc đối với nhiều người dùng khi làm việc trên môi trường DirectAdmin, đặc biệt là khi bạn cần tải lên các tệp tin có dung lượng đáng kể như video, file nén backup, hoặc các plugin/theme lớn. Nó báo hiệu rằng máy chủ đã từ chối yêu cầu của bạn vì dữ liệu gửi đi quá lớn so với “ngưỡng cửa” cho phép.
Nguyên nhân chính của vấn đề này bắt nguồn từ các giới hạn được thiết lập trong cấu hình PHP và cả trong cài đặt của DirectAdmin. Máy chủ web của bạn, giống như một người gác cổng, có những quy định nghiêm ngặt về kích thước tối đa của mỗi “gói hàng” (dữ liệu) được phép đi qua. Khi tệp tin của bạn vượt quá giới hạn này, yêu cầu sẽ bị chặn lại ngay lập tức.
Để giải quyết triệt để, chúng ta cần can thiệp vào hai khu vực chính: tệp cấu hình php.ini và các thiết lập của DirectAdmin. Trong bài viết này, AZWEB sẽ hướng dẫn bạn cách xác định đúng các thông số cần thay đổi, điều chỉnh chúng một cách hợp lý và khởi động lại dịch vụ để áp dụng cài đặt mới. Hãy cùng bắt đầu hành trình khắc phục lỗi khó chịu này nhé!

Nguyên nhân gây lỗi ‘Request body no files data length is larger’
Để khắc phục lỗi một cách hiệu quả, điều quan trọng là phải hiểu rõ gốc rễ của vấn đề. Lỗi này không tự nhiên sinh ra mà là kết quả của các cơ chế bảo vệ và giới hạn tài nguyên được thiết lập sẵn trên máy chủ của bạn. Hãy cùng phân tích hai nguyên nhân chính.
Giới hạn kích thước dữ liệu gửi lên server trong PHP
PHP, ngôn ngữ lập trình phổ biến nhất cho website, có các chỉ thị riêng để kiểm soát việc tải lên tệp tin. Hai thông số quan trọng nhất bạn cần biết là upload_max_filesize và post_max_size.
upload_max_filesize định nghĩa kích thước tối đa cho một tệp tin duy nhất được tải lên. Trong khi đó, post_max_size lại quy định tổng kích thước tối đa của toàn bộ dữ liệu được gửi đi trong một yêu cầu POST, bao gồm cả các tệp tin và các trường dữ liệu khác. Một quy tắc quan trọng là post_max_size phải luôn lớn hơn hoặc bằng upload_max_filesize. Nếu tệp của bạn lớn hơn upload_max_filesize, hoặc toàn bộ yêu cầu lớn hơn post_max_size, PHP sẽ từ chối xử lý và gây ra lỗi.
Ngoài ra, max_input_time cũng đóng một vai trò. Thông số này giới hạn thời gian máy chủ được phép phân tích dữ liệu đầu vào. Nếu việc tải lên một tệp lớn mất quá nhiều thời gian, nó có thể bị ngắt giữa chừng.

Để hiểu kỹ hơn về php.ini và cách cấu hình PHP, bạn có thể tham khảo bài viết chuyên sâu từ AZWEB.
Cấu hình mặc định của DirectAdmin và ảnh hưởng tới giới hạn tải dữ liệu
Bên cạnh PHP, chính bản thân DirectAdmin và webserver (thường là Apache hoặc Nginx) cũng có những giới hạn riêng. DirectAdmin có một tham số cấu hình để kiểm soát kích thước tối đa của một yêu cầu (request body). Nếu không được điều chỉnh, giá trị mặc định của nó có thể khá thấp, không đủ để xử lý các tệp tin lớn.
Khi bạn tải tệp lên thông qua giao diện của DirectAdmin hoặc một ứng dụng web chạy trên đó, yêu cầu của bạn phải đi qua “cánh cổng” của webserver trước khi đến được PHP. Nếu kích thước yêu cầu vượt quá giới hạn của webserver, nó sẽ bị chặn ngay lập tức, và bạn sẽ nhận được thông báo lỗi “Request body no files data length is larger”. Đây là một lớp bảo vệ thứ hai hoạt động song song với các giới hạn của PHP. Do đó, việc chỉ sửa đổi php.ini đôi khi là chưa đủ.
Bạn có thể tìm hiểu thêm về hệ thống Nginx là gì và Apache là gì, 2 web server phổ biến thường dùng trong môi trường DirectAdmin để hiểu rõ hơn về vai trò của webserver trong quản lý upload file.
Hướng dẫn điều chỉnh thông số trong file php.ini để khắc phục lỗi
Sau khi đã hiểu rõ nguyên nhân, chúng ta sẽ bắt tay vào hành động. Bước đầu tiên và quan trọng nhất là điều chỉnh các giới hạn trong tệp cấu hình php.ini. Đây là nơi quyết định “sức chứa” của PHP đối với dữ liệu tải lên.

Các bước chỉnh sửa post_max_size và upload_max_filesize
Đầu tiên, bạn cần xác định vị trí của tệp php.ini đang được máy chủ sử dụng. Vị trí phổ biến thường là /usr/local/lib/php.ini hoặc trong các thư mục dành riêng cho từng phiên bản PHP (ví dụ: /opt/alt/php74/etc/php.ini). Nếu không chắc chắn, bạn có thể tạo một tệp phpinfo.php với nội dung <?php phpinfo(); ?> để xem đường dẫn chính xác.
Sau khi mở tệp php.ini bằng một trình soạn thảo văn bản (như nano hoặc vim), hãy tìm đến các dòng sau:
upload_max_filesize = 2M
post_max_size = 8M
Giá trị mặc định thường khá nhỏ (ví dụ 2M hoặc 8M). Bạn cần tăng chúng lên để phù hợp với nhu cầu của mình. Ví dụ, nếu bạn muốn tải lên tệp có dung lượng 100MB, hãy đặt giá trị như sau:
upload_max_filesize = 100M
post_max_size = 120M
Lưu ý rằng post_max_size nên lớn hơn upload_max_filesize một chút để chứa các dữ liệu khác trong yêu cầu.
Tăng max_input_time và max_execution_time để tránh timeout
Việc tải lên một tệp tin lớn không chỉ cần không gian mà còn cần thời gian. Nếu quá trình này kéo dài, máy chủ có thể hết kiên nhẫn và tự động ngắt kết nối, gây ra lỗi timeout. Để ngăn chặn điều này, bạn cần tăng thời gian cho phép xử lý.
Trong cùng tệp php.ini, hãy tìm các chỉ thị max_input_time và max_execution_time.
max_execution_time = 30
max_input_time = 60
max_execution_time là tổng thời gian tối đa một script được phép chạy, trong khi max_input_time là thời gian tối đa để script phân tích dữ liệu đầu vào. Hãy tăng cả hai giá trị này lên một con số hợp lý, ví dụ như 300 giây (5 phút):
max_execution_time = 300
max_input_time = 300
Sau khi hoàn tất các thay đổi, đừng quên lưu lại tệp php.ini. Tuy nhiên, các cài đặt này sẽ chưa có hiệu lực ngay lập tức. Chúng ta cần thực hiện thêm bước cấu hình DirectAdmin và khởi động lại dịch vụ.

Cách cấu hình DirectAdmin để xử lý lỗi hiệu quả
Chỉ điều chỉnh php.ini thôi là chưa đủ. Như đã đề cập, DirectAdmin và webserver cũng có những giới hạn riêng cần được nới lỏng. Bỏ qua bước này là một trong những lý do phổ biến khiến lỗi vẫn tồn tại dù bạn đã cấu hình PHP đúng cách.
Thiết lập các thông số giới hạn trong DirectAdmin
DirectAdmin quản lý các cài đặt cấp cao của máy chủ thông qua tệp directadmin.conf. Tệp này thường nằm ở /usr/local/directadmin/conf/directadmin.conf. Bạn cần truy cập máy chủ qua SSH và mở tệp này để chỉnh sửa.
Hãy tìm đến thông số max_request_size. Thông số này giới hạn kích thước tối đa của một yêu cầu HTTP mà DirectAdmin sẽ chấp nhận, và nó được tính bằng byte. Nếu thông số này không tồn tại, bạn có thể thêm nó vào cuối tệp.
Giả sử bạn đã đặt post_max_size trong PHP là 120M, bạn cần đặt max_request_size lớn hơn giá trị đó. Để chuyển 120MB sang byte, bạn nhân với 1024 hai lần (120 * 1024 * 1024 = 125829120). Bạn có thể thêm dòng sau vào directadmin.conf:
max_request_size=125829120
Việc này đảm bảo rằng “cánh cổng” của DirectAdmin đủ rộng để cho phép yêu cầu của bạn đi qua trước khi được PHP xử lý.

Khởi động lại dịch vụ để áp dụng thay đổi cấu hình
Sau khi đã chỉnh sửa cả php.ini và directadmin.conf, bước cuối cùng và cực kỳ quan trọng là khởi động lại các dịch vụ liên quan để thay đổi có hiệu lực. Nếu bạn bỏ qua bước này, máy chủ sẽ tiếp tục chạy với cấu hình cũ.
Bạn cần khởi động lại dịch vụ webserver (Apache hoặc Nginx), dịch vụ PHP-FPM (nếu có), và cả dịch vụ DirectAdmin. Sử dụng các lệnh sau qua SSH:
Đối với Apache:
systemctl restart httpd
Đối với Nginx:
systemctl restart nginx
Đối với PHP-FPM (thay xx bằng phiên bản PHP của bạn, ví dụ php-fpm74):
systemctl restart php-fpmXX
Và cuối cùng, khởi động lại DirectAdmin:
systemctl restart directadmin
Sau khi tất cả các dịch vụ đã được khởi động lại thành công, cấu hình mới của bạn sẽ được áp dụng. Bây giờ là lúc để kiểm tra xem lỗi đã được khắc phục hay chưa.
Kiểm tra và xác nhận lỗi đã được khắc phục
Sau khi thực hiện các thay đổi cấu hình, bạn cần kiểm tra lại để chắc chắn rằng mọi thứ hoạt động như mong đợi. Việc xác nhận này giúp đảm bảo công sức của bạn không lãng phí và lỗi đã thực sự được giải quyết.

Cách kiểm tra khi upload file lớn không còn lỗi
Phương pháp đơn giản và trực tiếp nhất là thử lại hành động đã gây ra lỗi ban đầu. Hãy quay lại giao diện web hoặc trình quản lý tệp của DirectAdmin và tiến hành tải lên một tệp tin lớn, có dung lượng gần bằng giới hạn mới bạn đã thiết lập (ví dụ: một tệp 90MB nếu bạn đặt giới hạn là 100MB).
Nếu quá trình upload diễn ra suôn sẻ và hoàn tất mà không có bất kỳ thông báo lỗi nào, xin chúc mừng, bạn đã khắc phục thành công! Để chắc chắn hơn, bạn có thể theo dõi log lỗi của máy chủ web (ví dụ: /var/log/httpd/error_log cho Apache) trong lúc tải lên. Nếu không có thêm dòng lỗi “Request body no files data length is larger” nào xuất hiện, đó là một dấu hiệu tốt.
Sử dụng công cụ và lệnh kiểm tra cấu hình hiện tại
Để kiểm tra một cách kỹ thuật hơn, bạn có thể sử dụng hàm phpinfo(). Hãy tạo một tệp tin tên là info.php trong thư mục gốc của website với nội dung sau:
<?php
phpinfo();
?>
Sau đó, truy cập tệp này qua trình duyệt (ví dụ: yourdomain.com/info.php). Trang thông tin PHP sẽ hiện ra. Tại đây, hãy tìm kiếm (Ctrl+F) các giá trị upload_max_filesize, post_max_size, max_execution_time và max_input_time để xác nhận rằng chúng đã được cập nhật đúng với những gì bạn đã thiết lập trong php.ini. Đây là cách chắc chắn nhất để biết máy chủ đang sử dụng cấu hình nào.
Đối với cấu hình của DirectAdmin, bạn có thể kiểm tra lại tệp /usr/local/directadmin/conf/directadmin.conf để đảm bảo max_request_size đã được lưu đúng cách.

Một số vấn đề thường gặp và cách xử lý
Đôi khi, dù đã làm theo các bước hướng dẫn, lỗi vẫn có thể tiếp tục xuất hiện. Đừng lo lắng, đây là một số tình huống phổ biến và cách để bạn gỡ rối chúng.
Lỗi vẫn xuất hiện sau khi chỉnh sửa php.ini
Một trong những lý do phổ biến nhất là bạn đã chỉnh sửa sai tệp php.ini. Nhiều máy chủ hiện đại cài đặt nhiều phiên bản PHP khác nhau. Có thể bạn đã sửa tệp php.ini chung, nhưng website của bạn lại đang chạy một phiên bản PHP riêng với tệp cấu hình riêng. Hãy sử dụng phpinfo() như đã hướng dẫn ở phần trước để tìm ra đường dẫn “Loaded Configuration File” chính xác và đảm bảo bạn chỉnh sửa đúng tệp đó.
Một nguyên nhân khác có thể đến từ các tệp cấu hình cục bộ như .htaccess (đối với Apache) hoặc .user.ini. Các tệp này có thể ghi đè lên cài đặt trong php.ini chính. Hãy kiểm tra thư mục gốc của website xem có các tệp này không và liệu chúng có chứa các chỉ thị như php_value upload_max_filesize hay không.
Cuối cùng, nếu bạn sử dụng các dịch vụ proxy ngược như Cloudflare hoặc Nginx làm proxy cho Apache, chúng cũng có giới hạn kích thước request body riêng. Bạn cần kiểm tra và điều chỉnh cấu hình ở lớp proxy này nữa.

Thông tin chi tiết và các vấn đề liên quan đến server bạn có thể tham khảo thêm trong bài viết Server là gì và Phòng server là gì để có cái nhìn tổng thể hơn.
Server báo lỗi timeout hoặc gián đoạn
Nếu bạn không còn thấy lỗi “request body” nhưng quá trình upload bị ngắt giữa chừng hoặc trình duyệt báo lỗi timeout, vấn đề có thể đã chuyển từ “kích thước” sang “thời gian”.
Hãy quay lại tệp php.ini và kiểm tra lại các giá trị max_execution_time và max_input_time. Có thể bạn cần tăng chúng lên cao hơn nữa, đặc biệt nếu bạn có kết nối mạng chậm hoặc máy chủ đang có tải cao.
Ngoài ra, hãy kiểm tra tài nguyên của máy chủ (CPU, RAM) trong quá trình upload. Nếu việc xử lý một tệp lớn làm cạn kiệt tài nguyên, quá trình có thể bị hệ điều hành chấm dứt. Trong trường hợp này, bạn có thể cần tối ưu hóa website hoặc nâng cấp gói hosting/VPS là gì của mình. Dịch vụ VPS chất lượng cao từ AZWEB VPS tốt nhất có thể là một giải pháp tối ưu để đảm bảo tài nguyên hệ thống luôn đủ đáp ứng.
Các best practices khi cấu hình upload trên DirectAdmin
Việc điều chỉnh cấu hình máy chủ đòi hỏi sự cẩn thận. Để đảm bảo hệ thống hoạt động ổn định và an toàn, hãy tuân thủ các nguyên tắc sau đây.
- Luôn sao lưu file cấu hình trước khi thay đổi: Đây là quy tắc vàng. Trước khi chỉnh sửa bất kỳ tệp nào như
php.inihaydirectadmin.conf, hãy tạo một bản sao lưu. Một lệnh đơn giản nhưcp php.ini php.ini.bakcó thể cứu bạn khỏi những rắc rối không đáng có. - Điều chỉnh thông số phù hợp với dung lượng file phổ biến: Đừng đặt giới hạn một cách tùy tiện. Hãy phân tích nhu cầu thực tế của bạn. Nếu bạn chỉ cần tải lên các hình ảnh dưới 10MB, việc đặt giới hạn 1GB là không cần thiết và tiềm ẩn rủi ro.
- Không đặt giới hạn quá cao gây ảnh hưởng đến hoạt động chung của server: Việc cho phép upload các tệp tin cực lớn có thể làm cạn kiệt tài nguyên máy chủ (RAM, CPU, băng thông) và mở ra nguy cơ bị tấn công từ chối dịch vụ (DoS). Kẻ xấu có thể cố tình tải lên các tệp khổng lồ để làm tê liệt máy chủ của bạn.
- Thường xuyên kiểm tra log để phát hiện sớm lỗi: Tập thói quen kiểm tra các tệp log lỗi của máy chủ web và DirectAdmin. Chúng là nguồn thông tin vô giá giúp bạn phát hiện sớm các vấn đề bất thường trước khi chúng trở nên nghiêm trọng.
- Thực hiện restart dịch vụ đúng cách sau khi chỉnh sửa: Luôn nhớ rằng các thay đổi cấu hình chỉ có hiệu lực sau khi bạn khởi động lại các dịch vụ liên quan. Hãy đảm bảo bạn restart đúng và đủ các dịch vụ cần thiết (Apache/Nginx, PHP-FPM, DirectAdmin).

Kết luận
Lỗi “request body no files data length is larger” trên DirectAdmin tuy gây khó chịu nhưng hoàn toàn có thể được khắc phục nếu bạn hiểu rõ nguyên nhân và thực hiện đúng các bước. Vấn đề cốt lõi nằm ở sự xung đột giữa kích thước tệp tin bạn muốn tải lên và các giới hạn được thiết lập trong cả cấu hình PHP (php.ini) và cấu hình của DirectAdmin (directadmin.conf).
Bằng cách tăng các giá trị upload_max_filesize, post_max_size, và max_request_size một cách hợp lý, đồng thời điều chỉnh thời gian thực thi cho phù hợp, bạn có thể loại bỏ hoàn toàn lỗi này. Đừng quên tầm quan trọng của việc khởi động lại các dịch vụ để áp dụng thay đổi.
Việc chủ động quản lý và tối ưu cấu hình máy chủ không chỉ giúp bạn giải quyết các sự cố hiện tại mà còn nâng cao hiệu suất và độ ổn định của website về lâu dài. AZWEB khuyến khích bạn nên kiểm tra định kỳ các cài đặt và cập nhật phiên bản DirectAdmin, PHP để tận hưởng các tính năng mới và bản vá bảo mật. Nếu gặp khó khăn, đừng ngần ngại liên hệ với đội ngũ kỹ thuật hoặc các dịch vụ hỗ trợ chuyên nghiệp để được giúp đỡ.