Lỗi “wordpress permission denied” là một trong những vấn đề phổ biến nhất mà quản trị viên WordPress gặp phải, đặc biệt khi di chuyển trang web sang máy chủ mới, cài đặt plugin hoặc tải lên tệp tin. Lỗi này ngăn bạn truy cập vào các tài nguyên cần thiết, gây gián đoạn hoạt động của website. Bài viết này sẽ giúp bạn hiểu rõ bản chất của lỗi permission denied trong WordPress, phân loại các tình huống thường gặp và cung cấp hướng dẫn chi tiết từ cơ bản đến nâng cao để khắc phục triệt để.
Permission Denied Trong WordPress Là Gì?

Permission denied là thông báo lỗi xuất hiện khi hệ thống tập tin (file system) của máy chủ từ chối quyền truy cập vào một tệp hoặc thư mục cụ thể. Trong bối cảnh WordPress, lỗi này thường xảy ra khi mã nguồn PHP của WordPress, plugin hoặc theme cố gắng đọc, ghi hoặc thực thi một tệp nhưng không có quyền thích hợp. Mỗi tệp và thư mục trên máy chủ Linux/Unix đều có ba loại quyền: đọc (read – r), ghi (write – w) và thực thi (execute – x), được gán cho ba nhóm: chủ sở hữu (user), nhóm (group) và người khác (others). Khi quyền không khớp với yêu cầu của quá trình web server (thường chạy dưới tài khoản www-data hoặc apache), lỗi permission denied sẽ xuất hiện.
Phân Loại Lỗi WordPress Permission Denied

Lỗi permission denied có thể biểu hiện dưới nhiều hình thức khác nhau, tùy thuộc vào thao tác bạn đang thực hiện. Is its parent directory writable by the server?”
Nguyên Nhân Gây Ra Lỗi Permission Denied Trong WordPress

Có nhiều nguyên nhân dẫn đến lỗi permission denied, nhưng phổ biến nhất bao gồm:
- Cài đặt quyền tệp không chính xác: Khi bạn nén và giải nén WordPress trên máy chủ, quyền mặc định có thể bị thay đổi. Thư mục wp-content và các thư mục con cần có quyền ghi cho web server.
- Thay đổi chủ sở hữu (owner) không đúng: Nếu bạn sao chép tệp qua FTP hoặc SCP dưới tài khoản người dùng khác, chủ sở hữu tệp có thể không phải là user của web server.
- Môi trường hosting không đồng nhất: Một số nhà cung cấp hosting sử dụng suPHP, FastCGI hoặc PHP-FPM với cơ chế quyền riêng, yêu cầu cấu hình chính xác.
- Lỗi khi di chuyển trang web: Khi chuyển đổi máy chủ, quyền và chủ sở hữu bị reset về giá trị mặc định không phù hợp.
- Can thiệp thủ công không đúng cách: Chạy lệnh CHMOD hoặc CHOWN sai cú pháp có thể làm hỏng cấu trúc quyền.
- Dùng FTP Client (FileZilla): Kết nối vào máy chủ, kích chuột phải vào thư mục gốc, chọn “File Permissions”. Xem giá trị số (ví dụ 755, 644).
- Dùng SSH (nếu có quyền root hoặc sudo): Chạy lệnh
ls -latại thư mục gốc WordPress để xem owner, group và quyền.
Hướng Dẫn Khắc Phục Lỗi WordPress Permission Denied
1. Kiểm Tra Quyền Tệp Hiện Tại
Trước khi thay đổi bất kỳ quyền nào, bạn cần kiểm tra trạng thái hiện tại. Có hai cách thông dụng:
2. Thiết Lập Quyền Chuẩn Cho WordPress
Quyền được khuyến nghị bởi WordPress.org như sau:
| Thư mục / Tệp | Quyền | Giải thích |
|---|---|---|
| Tất cả thư mục | 755 (drwxr-xr-x) | Chủ sở hữu có toàn quyền, group và others chỉ đọc và thực thi. |
| Tất cả tệp tin | 644 (-rw-r–r–) | Chủ sở hữu có quyền đọc/ghi, group và others chỉ đọc. |
| wp-config.php | 600 hoặc 640 | Chỉ chủ sở hữu mới có quyền đọc/ghi, bảo mật thông tin nhạy cảm. |
| Thư mục wp-content | 755 | Cần quyền thực thi để web server có thể đọc và ghi dữ liệu. |
| Thư mục wp-content/uploads | 755 hoặc 775 (nếu cần ghi từ web) | Web server phải có quyền ghi để lưu hình ảnh và file tải lên. |
| Thư mục wp-content/plugins | 755 | Quyền đọc và thực thi cho web server, ghi chỉ khi cập nhật plugin. |
| Thư mục wp-content/themes | 755 | Tương tự plugins. |
3. Sửa Quyền Bằng Lệnh CHMOD Qua SSH
Nếu bạn có quyền truy cập SSH, đây là cách nhanh nhất để fix toàn bộ quyền:
Đặt quyền 644 cho tất cả tệp tin
find /path/to/wordpress -type f -exec chmod 644 {} ; # Đặt quyền 755 cho tất cả thư mục find /path/to/wordpress -type d -exec chmod 755 {} ; # Riêng thư mục uploads cho quyền ghi cho web server (nếu cần) chmod -R 775 wp-content/uploads
Lưu ý: Thay /path/to/wordpress bằng đường dẫn thực tế. Các lệnh này không ảnh hưởng đến wp-config.php, bạn cần đặt riêng.
4. Sửa Chủ Sở Hữu (Owner) Và Nhóm (Group)
Lỗi permission denied cũng thường do chủ sở hữu không đúng. Web server thường chạy dưới user www-data (trên Debian/Ubuntu) hoặc apache (trên CentOS). Bạn cần đặt quyền sở hữu cho thư mục WordPress thuộc về user này hoặc nhóm của nó.
Giả sử web server user là www-data
chown -R www-data:www-data /path/to/wordpress # Sau đó đặt lại quyền chuẩn find /path/to/wordpress -type f -exec chmod 644 {} ; find /path/to/wordpress -type d -exec chmod 755 {} ; chmod 600 /path/to/wordpress/wp-config.php
Trên môi trường shared hosting, bạn thường không có quyền root. Hãy kiểm tra user của tài khoản hosting (ví dụ: user123) và đảm bảo web server có quyền ghi qua PHP handler. Trong trường hợp đó, bạn chỉ cần đặt quyền 755 cho thư mục wp-content và 644 cho tệp.
5. Khắc Phục Lỗi Permission Denied Khi Cài Plugin Hoặc Upload File
Đây là tình huống phổ biến nhất, thường do thư mục wp-content/uploads không thể ghi. Các bước xử lý:
- Đảm bảo thư mục uploads có quyền 755 hoặc 775 (nếu PHP handler là suPHP).
- Kiểm tra xem thư mục uploads có tồn tại không. Nếu không, tạo nó bằng FTP hoặc lệnh
mkdir wp-content/uploads. - Nếu bạn dùng FTP để upload, sau đó plugin vẫn báo lỗi, hãy gỡ bỏ plugin và cài lại qua WordPress Admin.
- Vô hiệu hóa chế độ FTP trong wp-config.php (thêm dòng
define('FS_METHOD', 'direct');) buộc WordPress cố gắng ghi trực tiếp.
6. Sửa Lỗi Permission Denied Khi Cập Nhật WordPress Core
Lỗi này thường xảy ra khi web server không có quyền ghi vào thư mục gốc WordPress, đặc biệt là tệp wp-admin/includes và wp-includes. Hướng dẫn:
- Tạm thời đặt quyền 755 cho toàn bộ thư mục WordPress (không khuyến khích do rủi ro bảo mật, chỉ dùng khi cập nhật rồi trả lại).
- Dùng phương pháp thủ công: Tải gói cài đặt WordPress mới nhất, giải nén và upload qua FTP, ghi đè lên các tệp cũ.
- Kích hoạt chế độ SSH2 (nếu hosting hỗ trợ) để cập nhật qua SFTP.
Những Sai Lầm Thường Gặp Khi Fix Lỗi Permission Denied

- Chmod 777 toàn bộ website: Điều này mở quyền ghi cho tất cả mọi người, gây ra lỗ hổng bảo mật nghiêm trọng. Chỉ nên dùng 777 tạm thời cho thư mục uploads và nhớ trả về 755 ngay sau đó.
Nguyên nhân phổ biến là chủ sở hữu tệp không phải web server user. Dù quyền là 755 nhưng nếu chủ sở hữu là root và web server không có quyền root, bạn sẽ vẫn bị từ chối. Cần chown lại cho www-data hoặc user tương ứng.
Làm thế nào để kiểm tra PHP handler đang dùng?
Tạo một tệp thông tin PHP (phpinfo.php) với nội dung <?php phpinfo();?>, tải lên thư mục gốc, mở trình duyệt và tìm dòng “Server API” hoặc “Handler”. Nếu là “CGI/FastCGI” hoặc “suPHP”, bạn cần quyền 775 cho uploads.
Có cần đặt quyền 777 cho thư mục uploads không?
Không nên. 777 là quyền quá rộng, cho phép bất kỳ ai cũng có thể ghi vào thư mục. Chỉ dùng tạm thời nếu thực sự cần và ngay lập tức giảm xuống 755 hoặc 775. Hãy thử 775 trước.
Lỗi permission denied xuất hiện khi gỡ plugin, phải làm sao?
Gỡ plugin bằng tay qua FTP: Truy cập thư mục wp-content/plugins, xóa thư mục plugin đó. Sau đó kiểm tra lại quyền của thư mục plugins (nên là 755). Cài lại plugin từ đầu.
Tôi có thể sửa lỗi permission denied mà không cần SSH không?
Có. Bạn có thể dùng FTP client để thay đổi quyền thủ công (chọn từng thư mục, nhập giá trị số). Hoặc dùng File Manager của hosting. Nếu hosting hỗ trợ, hãy yêu cầu bộ phận hỗ trợ đặt quyền chuẩn cho bạn.
Kết Luận
Lỗi WordPress permission denied là một rào cản kỹ thuật nhưng hoàn toàn có thể khắc phục nếu bạn hiểu cơ chế quyền tệp trên hệ thống Linux. Điều quan trọng là xác định đúng nguyên nhân: do owner sai, quyền sai hay PHP handler. Với hướng dẫn chi tiết ở trên, bạn có thể tự tin kiểm tra và fix lỗi một cách an toàn. Hãy nhớ luôn sao lưu website trước khi can thiệp và tuân thủ nguyên tắc bảo mật tối thiểu. Nếu vẫn gặp vấn đề, liên hệ với nhà cung cấp hosting – họ thường có công cụ hỗ trợ đặt quyền tự động hoặc cung cấp thông tin cấu hình chính xác cho môi trường của bạn.
- Local Landing Page Là Gì? Giải Pháp SEO Địa Phương Giúp Doanh Nghiệp Vươn Lên Top Google
- Hướng dẫn toàn diện về WordPress Email Debug: Khắc phục lỗi gửi email thất bại nhanh chóng
- Motion Effects Elementor: Bí Quyết Tạo Hiệu Ứng Chuyển Động Chuyên Nghiệp Cho Website WordPress
- Intitle Operator Là Gì? Hướng Dẫn Toàn Diện Để Thống Trị Kết Quả Tìm Kiếm Google
- WordPress Apache htaccess Lỗi: Nguyên Nhân và Cách Sửa Chữa Toàn Diện















