WordPress Uploads Permission Lỗi – Nguyên Nhân, Cách Khắc Phục Chi Tiết Từ A Đến Z

wordpress uploads permission lỗi

Lỗi “WordPress uploads permission lỗi” là một trong những vấn đề phổ biến nhất mà chủ website gặp phải khi không thể tải lên hình ảnh, file PDF hay bất kỳ media nào vào thư mục wp-content/uploads. Thông báo lỗi thường xuất hiện như “Unable to create directory”, “Uploaded file could not be moved to” hoặc “Permission denied”. Nguyên nhân chủ yếu đến từ cấu hình sai quyền truy cập (file permissions) hoặc ownership trên máy chủ. Bài viết này sẽ phân tích tất cả nguyên nhân, hướng dẫn kiểm tra và sửa lỗi một cách chi tiết, an toàn, phù hợp với cả người mới và quản trị viên có kinh nghiệm.

Bản Chất Của Lỗi WordPress Uploads Permission

wordpress uploads permission lỗi - Hình 5

WordPress lưu trữ tất cả file media trong thư mục wp-content/uploads, được chia theo cấu trúc năm/tháng. Khi bạn tải lên một file, PHP trên server cần có quyền ghi (write) vào thư mục đó. Nếu quyền truy cập (permission) của thư mục hoặc file bị sai, hoặc chủ sở hữu (owner/group) không khớp với user chạy PHP, quá trình ghi sẽ thất bại.

Có ba yếu tố cốt lõi gây ra lỗi này:

    • File permissions (quyền truy cập): Thư mục uploads cần có quyền 755 (hoặc 775), file bên trong cần 644 (hoặc 664). Chmod quá thấp (ví dụ 600) sẽ chặn ghi, quá cao (777) gây rủi ro bảo mật.
    • Ownership (chủ sở hữu): User chạy PHP (thường là www-data, nobody, hoặc user cPanel) phải là chủ hoặc thuộc group của thư mục uploads. Nếu file thuộc về một user FTP khác, PHP không thể ghi.
    • Thiếu thư mục năm/tháng: WordPress không thể tự động tạo thư mục con nếu quyền ghi bị từ chối ở cấp cha.

Lỗi này có thể xảy ra trên mọi môi trường: hosting chia sẻ, VPS, máy chủ riêng, kể cả localhost.

Các Dạng Thông Báo Lỗi Thường Gặp

wordpress uploads permission lỗi - Hình 4

Người dùng có thể gặp những thông báo khác nhau tùy vào cấu hình server và plugin bảo mật:

Thông báo lỗi Nguyên nhân chính
“Unable to create directory wp-content/uploads/2025/01. Is its parent directory writable by the server?” Thiếu quyền ghi ở thư mục uploads hoặc thư mục cha.
“The uploaded file could not be moved to wp-content/uploads/…” Quyền ghi không đủ hoặc ownership sai.
“Permission denied” trong log lỗi PHP Cấu hình chmod hoặc selinux chặn ghi.
“Sorry, this file type is not permitted for security reasons.” Không phải lỗi permission, do security plugin chặn.

Nguyên Nhân Chi Tiết Gây Ra Lỗi WordPress Uploads Permission

wordpress uploads permission lỗi - Hình 3

1. Quyền Truy Cập (Chmod) Không Phù Hợp

Mỗi file và thư mục trên server Linux đều có ba nhóm quyền: owner, group, others. Mỗi nhóm có ba quyền: đọc (4), ghi (2), thực thi (1). Thư mục uploads cần quyền ghi cho owner và group, thường là 755. Nếu bạn vô tình set quyền 644 cho thư mục (chỉ đọc), PHP không thể tạo thư mục con hoặc ghi file.

2. Ownership Sai – Không Khớp Giữa User FTP Và User PHP

Trên hosting chia sẻ, user FTP thường là tên đăng nhập chính, trong khi user chạy PHP có thể là “nobody” hoặc “www-data”. Nếu file uploads thuộc sở hữu của ftp_user:ftp_group nhưng PHP chạy dưới user www-data, PHP không có quyền ghi. Điều này thường xảy ra khi bạn upload theme/plugin qua FTP và file được tạo với owner là user FTP.

3. Thư Mục uploads Bị Xóa Hoặc Không Tồn Tại

Trong một số trường hợp, thư mục uploads bị xóa nhầm khi clean up hoặc do lỗi migration. Khi đó WordPress sẽ cố gắng tạo lại nhưng nếu thư mục cha (wp-content) không có quyền ghi cho PHP, lỗi xuất hiện.

4. Cấu Hình.htaccess Hoặc Web.config Sai

Một số plugin bảo mật hoặc quy tắc mod_security có thể chặn quyền ghi thông qua.htaccess. Hoặc ”
sudo restorecon -Rv /var/www/html/wp-content/uploads

Sau đó kiểm tra ls -Z để thấy context đã đúng. Nếu buộc tắt SELinux, hãy dùng setenforce 0 để test, nhưng nhớ bật lại (setenforce 1) vì lý do bảo mật.

Phương Pháp 4: Tạo Lại Thư Mục Uploads Từ WordPress

Nếu thư mục uploads bị xóa hoặc hỏng,

php echo exec(‘whoami’);?>, đặt tên là user.php và upload vào thư mục gốc WordPress. Chạy file đó trên trình duyệt, kết quả sẽ hiển thị username của PHP process. Sau đó xóa file đí để đảm bảo an toàn.

Tôi có cần set quyền 777 cho thư mục uploads khi gặp lỗi không?

Không nên. 777 là giải pháp cuối cùng để kiểm tra chẩn đoán. Sau khi test thành công, hãy ngay lập tức giảm về 755 và điều chỉnh ownership. 777 sẽ làm website dễ bị tấn công.

Sau khi sửa permission, tôi vẫn bị lỗi “Unable to create directory”, nguyên nhân do đâu?

Có thể thư mục uploads vẫn thuộc về root user hoặc user không phải PHP. Kiểm tra lại ownership và thử tạo thư mục con bằng tay. Nếu vẫn lỗi, hãy kiểm tra.htaccess hoặc SELinux.

Có plugin nào tự động sửa lỗi upload permission không?

Có, một số plugin như WP File Permissions, iThemes Security (có tính năng sửa quyền), hoặc All-in-One WP Migration cũng có thể reset permission khi migrate. Tuy nhiên, plugin chỉ hoạt động trên các hosting cho phép thay đổi quyền.

Lỗi upload permission có ảnh hưởng đến các chức năng khác không?

Có. Ngoài tải lên media, lỗi này còn khiến các plugin cần ghi file (ví dụ cache, backup, log) hoạt động sai, thậm chí gây lỗi không cập nhật được theme/plugin tự động.

Kết Luận

wordpress uploads permission lỗi - Hình 2

Lỗi “WordPress uploads permission lỗi” thường không quá khó để sửa nếu bạn hiểu rõ cơ chế quyền truy cập trên server Linux. Việc đầu tiên là kiểm tra chmod và ownership của thư mục wp-content/uploads, sau đó áp dụng đúng giá trị 755 cho thư mục và 644 cho file. Đừng quên xử lý cả SELinux nếu có. Nếu đã làm mọi cách nhưng vẫn không được, hãy liên hệ với nhà cung cấp hosting để được hỗ trợ sâu hơn. Bảo mật website vẫn là ưu tiên hàng đầu, vì vậy hãy tránh set quyền 777 và thường xuyên kiểm tra log lỗi để phát hiện sớm các vấn đề.

Bài viết cùng chủ đề:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *