Xử Lý Triệt Để WordPress FTP Permissions Lỗi: Nguyên Nhân Và Cách Khắc Phục

wordpress ftp permissions lỗi

Lỗi WordPress FTP permissions xuất hiện khi hệ thống không thể ghi, đọc hoặc thực thi file do cài đặt quyền truy cập không đúng. Đây là một trong những lỗi phổ biến khiến website ngừng hoạt động, không thể cập nhật plugin, theme hoặc tải lên media. Bài viết này đi sâu phân tích bản chất của lỗi quyền truy cập FTP, tác động đến hiệu suất WordPress, đồng thời cung cấp quy trình sửa lỗi chi tiết từ cơ bản đến nâng cao dành cho quản trị viên và nhà phát triển.

Hiểu Đúng Về WordPress FTP Permissions Lỗi

wordpress ftp permissions lỗi - Hình 5

FTP (File Transfer Protocol) permissions là cơ chế kiểm soát xem ai có thể đọc, ghi và thực thi file trên máy chủ. Khi WordPress yêu cầu quyền ghi để cài đặt plugin nhưng người dùng FTP không có quyền tương ứng, hệ thống báo lỗi. Lỗi này thường xảy ra trên môi trường hosting Linux/Unix do sự khác biệt giữa user sở hữu file (owner) và user FTP.

Về bản chất, mỗi file và thư mục trong WordPress đều gắn với một owner và group. Nếu owner là root (thường thấy trên VPS) còn user FTP là www-data, server sẽ từ chối ghi. Kết quả là trang web không thể tự động cập nhật, upload hình ảnh hay thay đổi cấu hình qua admin panel.

Nguyên Nhân Gây Ra lỗi WordPress FTP Permissions

wordpress ftp permissions lỗi - Hình 4

Sai File Ownership (Chủ Sở Hữu File)

Nguyên nhân hàng đầu của lỗi WordPress FTP permissions là file ownership không khớp với user chạy web server. Ví dụ: Apache chạy với user www-data, nhưng các file WordPress lại thuộc sở hữu của user root. Khi PHP cố gắng ghi file, quyền bị từ chối. Điều này thường xảy ra sau khi chép file qua SCP hoặc restore backup bằng tài khoản root.

Sai Permission Value (Giá Trị Quyền File)

Các permission dạng số (numeric mode) quy định quyền read, write, execute cho owner, group và others. WordPress yêu cầu giá trị cụ thể cho từng loại file: thư mục cần 755 hoặc 775, file cần 644 hoặc 664. Nếu đặt sai ví dụ thư mục là 600, file là 755, lỗi permissions xuất hiện ngay.

Cấu Hình wp-config.php Thiếu Thông Tin FTP

Khi WordPress không thể ghi trực tiếp, nó sẽ hỏi thông tin FTP. Nếu wp-config.php không có các hằng số FTP_HOST, FTP_USER, FTP_PASS hoặc đặt sai, quá trình xác thực thất bại. Lỗi này thường gặp ở các website chạy trên môi trường local hoặc hosting chia sẻ.

Chmod Không Đúng Cho Từng Loại Tệp

Nhiều người dùng mắc sai lầm chmod 777 toàn bộ thư mục wp-content để giải quyết lỗi nhanh. Điều này tạo ra lỗ hổng bảo mật nghiêm trọng. WordPress cần phân biệt quyền cho file PHP, thư mục upload, và thư mục plugin. Chỉ một số thư mục con như wp-content/uploads cần 755, không phải toàn bộ.

Phân Loại Lỗi WordPress FTP Permissions Theo Mức Độ

wordpress ftp permissions lỗi - Hình 3
Phân loại Triệu chứng điển hình Mức độ ảnh hưởng
Không thể ghi plugin/theme Thông báo “Could not create directory” khi cài plugin mới Vừa phải
Không thể upload media Lỗi “Unable to create directory wp-content/uploads/2025” Cao
Không thể tự động cập nhật Yêu cầu nhập thông tin FTP liên tục Cao
Lỗi critical error sau khi chỉnh sửa file Trang web chết trắng do không thể ghi file cấu hình Nghiêm trọng

Hướng Dẫn Chi Tiết Sửa Lỗi WordPress FTP Permissions

wordpress ftp permissions lỗi - Hình 2

Bước 1: Kiểm Tra File Ownership Hiện Tại

Đăng nhập vào hosting qua SSH hoặc cPanel File Manager. Dùng lệnh ls -la trong thư mục gốc WordPress. Quan sát cột user và group. Nếu user là root hoặc user không phải là web server user, cần thay đổi.

Lệnh fix ownership chuẩn cho Apache (www-data):

    • chown -R www-data:www-data /path/to/wordpress
    • Đối với Nginx: chown -R nginx:nginx /path/to/wordpress
    • Đối với LiteSpeed: chown -R nobody:nobody /path/to/wordpress (kiểm tra user thực tế của hosting)

    Bước 2: Thiết Lập Permission Value Đúng Cho WordPress

    Sau khi sở hữu ownership, áp dụng permission chuẩn:

    • Thư mục: 755 (owner có full quyền, group và others chỉ read+execute)
    • File tĩnh (PHP, JS, CSS, ảnh): 644 (owner read+write, group và others chỉ read)
    • Thư mục wp-content/uploads: 755 (cần write cho owner và group)

Dùng lệnh sau để set recursive:

find /path/wordpress -type d -exec chmod 755 {} ;
find /path/wordpress -type f -exec chmod 644 {} ;

Nếu hosting không hỗ trợ SSH, dùng tính năng Change Permissions trong cPanel File Manager. Chọn thư mục wp-content, nhập 755, chọn “Change permissions for subdirectories and files”.

Bước 3: Cấu Hình wp-config.php Để Bỏ Qua FTP

Thêm dòng sau trước dòng / That's all, stop editing /:

define('FS_METHOD', 'direct');

Hằng số FS_METHOD = ‘direct’ yêu cầu WordPress ghi trực tiếp qua PHP, không cần FTP. Đảm bảo ownership và permission đã đúng để dòng này hoạt động. Nếu vẫn báo lỗi, kiểm tra lại bước 1 và 2.

Bước 4: Kiểm Tra SELinux Hoặc AppArmor (Nếu Có)

Trên CentOS/RHEL, SELinux có thể chặn ghi. Dùng lệnh:

chcon -R -t httpd_sys_rw_content_t /path/wordpress/wp-content

Hoặc tạm thời tắt SELinux bằng setenforce 0 để test. Nếu lỗi biến mất, cấu hình SELinux policy chính xác.

Bước 5: Đối Với Hosting Chia Sẻ – Dùng Buil-in FTP Client

Nếu hosting không cho phép SSH,

Dùng File Manager của hosting hoặc SSH với lệnh ls -la. Cột đầu tiên hiển thị dạng -rwxr-xr-x. Số tương ứng: r=4, w=2, x=1. Ví dụ -rwxr-xr-x = 755.

Tại sao tôi đã set permission 755 nhưng vẫn báo lỗi không ghi được?

Kiểm tra lại ownership. Nếu owner là root, web server không thể ghi dù permission 755. Phải chown đúng user web server (www-data, nginx, nobody). Ngoài ra, kiểm tra SELinux hoặc AppArmor đang chặn.

Lỗi WordPress FTP permissions có ảnh hưởng đến SEO không?

Gián tiếp. Nếu lỗi gây chết trắng website, không thể tạo sitemap hoặc cập nhật nội dung, SEO bị ảnh hưởng. Lỗi cũng có thể khiến ảnh không upload được làm thiếu hình ảnh trong bài viết. Xử lý kịp thời giúp website luôn hoạt động, thân thiện với bot Google.

Có nên đặt FS_METHOD là ‘direct’ ngay sau khi cài WordPress không?

Chỉ nên đặt khi chắc chắn ownership và permission đã chuẩn. Nếu đặt trước khi fix, WordPress sẽ cố ghi và báo lỗi. Tốt nhất là fix permissions trước, sau đó mới thêm hằng số.

Làm sao để biết web server user là ai?

Dùng lệnh ps aux | grep -E '(apache|httpd|nginx|php-fpm)' hoặc kiểm tra file cấu hình PHP-FPM (thường www.conf). Hoặc tạo file info.php với nội dung <?php echo exec('whoami');?> rồi truy cập.

Kết Luận

wordpress ftp permissions lỗi - Hình 1

Lỗi WordPress FTP permissions không phải là vấn đề phức tạp nếu hiểu đúng cơ chế ownership và permission value. Bằng cách kiểm tra user sở hữu, set đúng giá trị 755 cho thư mục và 644 cho file, kết hợp với FS_METHOD trong wp-config, bạn có thể khôi phục hoàn toàn khả năng ghi của WordPress. Tránh các sai lầm như chmod 777 toàn bộ hoặc bỏ qua group. Với quy trình chuẩn, website sẽ hoạt động ổn định, an toàn và sẵn sàng cho mọi bản cập nhật.

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 *