Cách khắc phục lỗi WordPress 'Could Not Create Directory'

intermediate📝 WordPress2026-07-01| Máy chủ web dựa trên Linux (Ubuntu, Debian, CentOS), Apache hoặc Nginx, WordPress 5.x/6.x

Error Message

Installation failed: Could not create directory.
#wordpress#phân-quyền#máy-chủ-linux#lỗi-plugin#quản-trị-hệ-thống

Vấn đềBạn đang trong quá trình cài đặt một plugin mới như Yoast SEO hoặc một theme nặng như Avada thì WordPress đột ngột gặp lỗi. Thay vì thông báo thành công, bạn thấy một cảnh báo gây khó chịu: Installation failed: Could not create directory.

Lỗi này là dấu hiệu cho thấy tiến trình PHP của máy chủ không có quyền ghi dữ liệu mới vào thư mục wp-content. Đây là một vấn đề phổ biến thường xuất hiện sau khi bạn chuyển host, khôi phục bản sao lưu hoặc thắt chặt các thiết lập bảo mật máy chủ.

Tại sao lỗi này xảy ra- Phân quyền không chính xác: Các thư mục của bạn bị khóa quá chặt, ngăn cản máy chủ thêm các file mới.- Xung đột quyền sở hữu: Các file thuộc về một người dùng như 'root' hoặc 'ftpuser', nhưng máy chủ web (www-data) lại đang cố gắng sửa đổi chúng.- Hết dung lượng ổ đĩa: Gói lưu trữ của bạn đã đầy. Ngay cả một ổ SSD 20GB cũng có thể bị lấp đầy nhanh chóng bởi các bản sao lưu cũ hoặc các file log khổng lồ.- Thư mục tạm bị lỗi: WordPress không thể tìm thấy nơi an toàn để giải nén các file plugin trước khi di chuyển chúng đến vị trí cuối cùng.## Các bước khắc phục### 1. Thiết lập lại phân quyền thư mụcWordPress tuân theo một quy tắc nghiêm ngặt: thư mục nên là 755 và file nên là 644. Nếu thư mục wp-content/plugins của bạn được đặt thành 555 (chỉ đọc), việc cài đặt sẽ luôn thất bại.

Đăng nhập vào máy chủ của bạn qua SSH và đi tới thư mục gốc của WordPress. Chạy hai lệnh sau để sửa toàn bộ trang web cùng một lúc:

# Thiết lập tất cả thư mục thành 755
find . -type d -exec chmod 755 {} \;

# Thiết lập tất cả tập tin thành 644
find . -type f -exec chmod 644 {} \;

Nếu bạn chỉ muốn nhắm mục tiêu vào các điểm gặp sự cố cụ thể, hãy sử dụng các lệnh sau:

chmod 755 wp-content/plugins
chmod 755 wp-content/themes
chmod 755 wp-content/uploads

2. Sửa quyền sở hữu filePhân quyền sẽ không có ý nghĩa nếu máy chủ web không "sở hữu" các thư mục đó. Nếu bạn tải file lên qua FTP bằng tài khoản cá nhân, máy chủ web (thường là www-data hoặc apache) có thể bị coi là người ngoài.

Kiểm tra xem ai sở hữu các file của bạn bằng cách chạy lệnh ls -la. Nếu bạn thấy 'root' được liệt kê bên cạnh các thư mục, bạn cần giao lại quyền kiểm soát cho máy chủ web.

# Đối với Ubuntu hoặc Debian (Nginx/Apache)
sudo chown -R www-data:www-data /var/www/html/wp-content

# Đối với CentOS hoặc RHEL
sudo chown -R apache:apache /var/www/html/wp-content

3. Kiểm tra dung lượng ổ đĩaĐôi khi lỗi "phân quyền" thực chất là lỗi "không còn chỗ trống". Sử dụng lệnh df để xem máy chủ của bạn còn bao nhiêu dung lượng trống:

df -h

Nhìn vào cột Use%. Nếu phân vùng chính của bạn hiển thị 100%, bạn cần xóa các file log lỗi cũ hoặc các trang web thử nghiệm (staging). Đừng quên kiểm tra Inodes (tổng số lượng file được phép) bằng lệnh df -i. Nếu bạn có hàng triệu file session nhỏ, bạn có thể hết Inodes trước khi hết dung lượng gigabyte.

4. Xác định thư mục tạm thời tùy chỉnhNếu thư mục /tmp chung của máy chủ bị hạn chế hoặc bị đầy, WordPress sẽ thất bại trong giaiai đoạn "giải nén". Bạn có thể bỏ qua điều này bằng cách tạo một thư mục tạm riêng bên trong bản cài đặt WordPress của mình.

  • Tạo một thư mục mới tên là temp bên trong wp-content.- Mở file wp-config.php.- Dán dòng này ngay phía trên dòng chú thích 'That's all, stop editing!':``` define('WP_TEMP_DIR', dirname(FILE) . '/wp-content/temp/');

Đảm bảo thư mục `temp` mới này cũng có quyền `755` để WordPress thực sự có thể sử dụng nó.
## Kiểm tra kết quảĐể xác minh giải pháp, hãy thử "kiểm tra áp lực" với một plugin nhỏ:
- Đi tới **Plugins > Add New**.- Tìm kiếm 'Hello Dolly' (dung lượng chưa đến 100KB).- Nhấn **Install Now**.Nếu nó được cài đặt ngay lập tức, bạn đã giải quyết thành công điểm nghẽn.
## Mẹo chuyên nghiệp về bảo mậtĐừng bao giờ đặt phân quyền thành `777`. Mặc dù nó có thể giải quyết được lỗi, nhưng điều đó giống như để ngỏ cửa chính của bạn; bất kỳ ai trên máy chủ đều có thể đọc, ghi hoặc xóa các file của bạn. Hãy giữ ở mức `755` để đảm bảo an toàn.
Việc tính toán các giá trị bát phân (octal) cho phân quyền có thể gây nhầm lẫn. Tôi thường sử dụng [Unix Permissions Calculator](https://toolcraft.app/en/tools/developer/unix-permissions) để hình dung chính xác quyền truy cập mà tôi đang cấp cho chủ sở hữu so với công cộng. Đây là một cách tuyệt vời để kiểm tra lại trước khi áp dụng các thay đổi cho máy chủ thực tế (production).
Nếu bạn đang sử dụng gói shared hosting không có quyền truy cập SSH, đừng lo lắng. Bạn có thể thực hiện các bước tương tự bằng cách sử dụng 'File Manager' trong cPanel. Chỉ cần nhấp chuột phải vào thư mục, chọn 'Change Permissions' và đảm bảo giá trị số là 755.

Related Error Notes