Thư mục wp-content/uploads trong WordPress chịu trách nhiệm lưu trữ toàn bộ hình ảnh, tệp tin tải lên từ Media Library. Khi gặp lỗi liên quan đến thư mục này, website thường hiển thị thông báo “Không thể tạo thư mục wp-content/uploads/…” hoặc “Lỗi tải lên: Không thể ghi tệp vào thư mục”. Đây là một trong những lỗi phổ biến nhất mà người dùng WordPress gặp phải, đặc biệt khi di chuyển hosting, thay đổi cấu hình hoặc cài đặt plugin mới. Bài viết này sẽ phân tích chi tiết nguyên nhân sâu xa, cách khắc phục từng bước và các biện pháp phòng ngừa hiệu quả.
Thư mục wp-content/uploads là gì? Vai trò của nó trong WordPress

Khi bạn tải lên một tệp tin (hình ảnh, PDF, video) qua Media Library, WordPress tự động sắp xếp chúng vào thư mục wp-content/uploads. Thư mục này được tổ chức theo năm và tháng, ví dụ: wp-content/uploads/2025/02/. Mỗi lần tải lên, WordPress kiểm tra quyền ghi (permissions) của thư mục và cố gắng tạo thư mục con nếu chưa tồn tại. Nếu quá trình này thất bại, lỗi ngay lập tức xuất hiện.
Cấu trúc thư mục uploads mặc định
- wp-content/uploads – thư mục gốc chứa tất cả tệp tải lên
- wp-content/uploads/2024 – thư mục theo năm
- wp-content/uploads/2024/01 – thư mục theo tháng
- Các tệp tin được đặt tên ngẫu nhiên hoặc giữ nguyên tên gốc
Phân loại các lỗi thường gặp ở thư mục wp-content/uploads

Lỗi liên quan đến wordpress wp-content uploads có thể chia thành ba dạng chính: lỗi quyền truy cập, lỗi cấu hình hosting, và lỗi do plugin/xung đột. Mỗi dạng có biểu hiện và cách xử lý khác nhau.
| Loại lỗi | Thông báo điển hình | Nguyên nhân chính |
|---|---|---|
| Lỗi quyền (Permissions) | “Unable to create directory wp-content/uploads/2025/02. Is its parent directory writable by the server?” | PHP/FTP user không có quyền ghi vào thư mục |
| Lỗi đĩa đầy (Disk quota) | “Could not write file” hoặc “No space left on device” | Dung lượng hosting hoặc quota tệp bị vượt quá giới hạn |
| Lỗi cấu hình PHP | “Uploaded file exceeds the upload_max_filesize directive” | Giới hạn kích thước tải lên trong php.ini |
| Lỗi plugin bảo mật | “File upload failed – security check” | Plugin như Wordfence, iThemes Security chặn tải lên |
Nguyên nhân gốc rễ gây ra lỗi wp-content/uploads

Để khắc phục triệt để, cần hiểu tại sao thư mục uploads lại không cho phép ghi.
1. Quyền (Permissions) không chính xác
WordPress chạy dưới tài khoản user của server (thường là www-data, nobody, hoặc user của hosting). Nếu thư mục wp-content hoặc uploads có quyền 755 hoặc 644 cho thư mục, script PHP không thể tạo thư mục con. Quyền chuẩn cho thư mục là 755 (drwxr-xr-x) và cho tệp tin là 644. Tuy nhiên, nhiều hosting an toàn yêu cầu quyền 750 hoặc 705. Sai quyền là nguyên nhân số một.
2. Chủ sở hữu (Ownership) không đồng nhất
Khi bạn cài WordPress qua FTP bằng user A, nhưng PHP chạy dưới user B, thư mục có thể thuộc sở hữu của user A, khiến user B không thể ghi. Lệnh ls -la trong terminal sẽ hiển thị owner và group. Nếu owner khác với user PHP, cần thay đổi.
3. Giới hạn tài nguyên hosting
Hosting chia sẻ thường áp dụng inode limit (số lượng tệp tối đa) và disk quota. Khi quá nhiều tệp trong uploads, hoặc dung lượng hết, WordPress không thể tạo tệp mới. Kiểm tra qua cPanel hoặc liên hệ nhà cung cấp.
4. Xung đột plugin hoặc theme
Một số plugin tối ưu hóa hình ảnh (Smush, ShortPixel) hoặc plugin bảo mật có thể can thiệp vào quá trình tải lên. Theme không chuẩn cũng có thể override hàm wp_handle_upload().
5. Cấu hình PHP không phù hợp
Giá trị upload_max_filesize, post_max_size, max_execution_time trong php.ini quá thấp sẽ gây lỗi khi tải lên tệp lớn. Ngoài ra, nếu open_basedir hạn chế đường dẫn, WordPress không thể truy cập thư mục uploads.
Hướng dẫn khắc phục lỗi wordpress wp-content uploads chi tiết

Thực hiện tuần tự cho đến khi lỗi biến mất.
Bước 1: Kiểm tra và sửa quyền thư mục qua FTP hoặc File Manager
Đăng nhập vào hosting (cPanel, DirectAdmin, hoặc FTP client như FileZilla). Điều hướng đến thư mục wp-content. Click chuột phải vào thư mục uploads và chọn “File permissions” (hoặc Properties). Đặt giá trị 755 cho thư mục và 644 cho tất cả tệp bên trong. Nếu bạn dùng FTP, chọn “Recurse into subdirectories” để áp dụng cho tất cả thư mục con. Nếu hosting sử dụng suPHP hoặc CGI, có thể cần quyền 750 hoặc 705.
Bước 2: Thay đổi chủ sở hữu (chown) thông qua SSH hoặc hỗ trợ hosting
Nếu bước 1 không hiệu quả, truy cập SSH (nếu được cấp). Sử dụng lệnh:
chown -R www-data:www-data wp-content/uploads
Thay www-data bằng user và group mà web server sử dụng (thường là www-data, apache, nobody, hoặc tên user hosting). Nếu không có SSH, liên hệ bộ phận hỗ trợ kỹ thuật của hosting để họ thực hiện.
Bước 3: Kiểm tra dung lượng đĩa và giới hạn inode
Trong cPanel, vào “Disk Usage” hoặc “File Manager” xem dung lượng còn trống. Nếu gần đầy, xóa bớt tệp không cần thiết. Kiểm tra inode limit bằng lệnh (nếu có SSH):
df -i | grep wp-content
Nếu inode đạt 100%, bạn cần xóa các thư mục cache, revision, hoặc hình ảnh không dùng. Plugin như “Media Cleaner” có thể giúp dọn dẹp.
Bước 4: Vô hiệu hóa plugin và theme tạm thời
Vào WordPress Admin > Plugins, chọn “Deactivate” tất cả plugin. Nếu lỗi biến mất, kích hoạt từng plugin để tìm thủ phạm. Tương tự với theme: chuyển sang theme mặc định (Twenty Twenty-Four) để kiểm tra.
Bước 5: Tăng giới hạn upload trong php.ini hoặc.htaccess
Thêm vào tệp .htaccess trong thư mục gốc WordPress:
php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 300
Nếu hosting hỗ trợ, tạo tệp php.ini trong wp-admin hoặc wp-content với nội dung tương tự. Hoặc thông qua plugin “WP Upload Max Size”.
Bước 6: Kiểm tra đường dẫn wp-content/uploads có bị sai cấu hình không
Đôi khi plugin hoặc code tùy chỉnh thay đổi đường dẫn uploads. Kiểm tra trong Cơ sở dữ liệu (phpMyAdmin) bảng wp_options với option_name là upload_path. Giá trị mặc định là rỗng hoặc ‘wp-content/uploads’. Nếu bị thay đổi, hãy sửa lại.
Bước 7: Tự động tạo lại thư mục uploads bằng mã script
Nếu thư mục uploads bị xóa hoặc hỏng cấu trúc,
Đúng, lỗi này thường do không đủ dung lượng đĩa hoặc thư mục không cho phép ghi. Kiểm tra dung lượng hosting và quyền thư mục.
Tại sao sau khi sửa quyền 755 vẫn bị lỗi?
Có thể chủ sở hữu thư mục không trùng với web server user. Dùng lệnh chown qua SSH, hoặc liên hệ hosting để kiểm tra.
Lỗi “Unable to create directory” xảy ra khi nào?
Khi PHP cố tạo thư mục con (ví dụ thư mục tháng) nhưng thư mục cha không có quyền ghi. Thường xảy ra sau khi chuyển host hoặc cài đặt lại.
Có nên đặt quyền 777 cho thư mục uploads không?
Không. 777 cho phép bất kỳ user nào cũng có thể ghi, tạo nguy cơ bị hack upload shell. Chỉ dùng 755 hoặc 750 nếu cần bảo mật cao hơn.
Kết luận

Lỗi wordpress wp-content uploads tuy phổ biến nhưng hoàn toàn có thể khắc phục nếu nắm rõ nguyên nhân. Quyền thư mục, chủ sở hữu, giới hạn tài nguyên và xung đột plugin là bốn yếu tố cần kiểm tra. Thực hiện đúng quy trình từ sửa quyền, đổi ownership, kiểm tra dung lượng, vô hiệu hóa plugin, và điều chỉnh PHP settings sẽ giúp website vận hành trơn tru. Đừng quên sao lưu dữ liệu trước khi can thiệp và luôn ưu tiên bảo mật với quyền 755 thay vì 777. Với hướng dẫn chi tiết trên, bạn đã có thể tự xử lý lỗi này và phòng ngừa tái diễn.
- WordPress Loopback Request Failed: Nguyên Nhân, Cách Khắc Phục Chi Tiết
- Theme WordPress Safe Mode: Giải Pháp Khắc Phục Lỗi Theme Hiệu Quả Nhất
- WordPress PHP Max Execution Time: Hướng Dẫn Toàn Diện Từ A-Z Cho Website Tối Ưu
- WordPress Object Cache Là Gì? Hướng Dẫn Toàn Diện Từ A-Z Cho Người Mới Bắt Đầu
- Hướng dẫn chi tiết plugin wordpress troubleshooting: Xử lý mọi lỗi plugin từ A đến Z
















