Vấn đề
Bạn mở terminal để chạy lệnh wp plugin list hoặc wp core update. Thay vì kết quả thông thường, terminal trả về một thông báo cụ thể: Error: This does not seem to be a WordPress installation. Đây là một lỗi phổ biến, thường có nghĩa là WP-CLI không thể tìm thấy các tệp tin cốt lõi của trang web.
Tại sao WP-CLI không nhận diện được
WP-CLI xác định một bản cài đặt hợp lệ bằng cách tìm tệp wp-includes/version.php. Nếu không tìm thấy tệp này trong đường dẫn tìm kiếm, công cụ sẽ giả định rằng nó đang ở sai thư mục. Điều này thường xảy ra do một vài lý do cụ thể:
- Sai thư mục: Bạn đang chạy lệnh từ
/var/www/thay vì thư mục gốc thực tế tại/var/www/html/. - Sai đường dẫn: Tham số
--pathbạn cung cấp trỏ đến một thư mục không chứa các tệp tin cốt lõi. - Cấu trúc tùy chỉnh: Bạn đang sử dụng các boilerplate như Roots Bedrock, nơi mã nguồn WordPress được đặt trong thư mục con
/web/wp/. - Không đủ quyền: Người dùng của bạn không có quyền đọc tệp
wp-load.phphoặc thư mụcwp-includes.
Cách khắc phục nhanh: Kiểm tra vị trí của bạn
Đa số trường hợp, bạn chỉ cần chuyển sang đúng thư mục. Sử dụng pwd để xem chính xác vị trí của bạn trong hệ thống tệp. Sau đó, kiểm tra sự tồn tại của tệp loader WordPress.
# Xem đường dẫn hiện tại của bạn
pwd
# Xác nhận xem các tệp tin cốt lõi có thực sự ở đây không
ls -la | grep wp-load.php
Nếu không thấy tệp tin, hãy di chuyển vào đúng thư mục. Đối với thiết lập Ubuntu tiêu chuẩn, thư mục này thường là /var/www/html:
cd /var/www/html
wp core version
Sử dụng tham số --path
Bạn có thể cần chạy lệnh từ bên ngoài thư mục WordPress, chẳng hạn như trong một script triển khai hoặc cron job. Trong những trường hợp này, bạn phải chỉ định rõ cho WP-CLI nơi chứa các tệp tin. Sử dụng cờ --path với đường dẫn thư mục tuyệt đối.
wp plugin list --path=/var/www/my-site.com/public_html
Tránh thêm dấu gạch chéo ở cuối đường dẫn. Sử dụng /var/www/html sẽ gọn gàng hơn và ít gặp lỗi đường dẫn nội bộ hơn so với /var/www/html/.
Giải pháp cho Bedrock và các cấu trúc tùy chỉnh
Bedrock thay đổi cấu trúc bằng cách di chuyển mã nguồn WordPress vào một thư mục con. Nếu bạn chạy lệnh ở thư mục gốc của dự án, WP-CLI sẽ thất bại. Bạn cần trỏ công cụ đến chính xác thư mục web/wp.
# Thực thi lệnh Bedrock tiêu chuẩn
wp plugin list --path=web/wp
Tiết kiệm thời gian với wp-cli.yml
Việc nhập đường dẫn thủ công mỗi lần rất tẻ nhạt. Để tự động hóa việc này, hãy tạo tệp wp-cli.yml trong thư mục gốc của dự án. Tệp cấu hình này sẽ chỉ định cho WP-CLI chính xác nơi cần tìm cho dự án đó mỗi khi bạn chạy lệnh.
Thêm nội dung này vào tệp wp-cli.yml của bạn:
path: public_html
# Hoặc cho người dùng Bedrock:
# path: web/wp
Giờ đây, chỉ cần bạn ở trong thư mục dự án, bạn có thể chạy các lệnh wp mà không cần thêm bất kỳ tham số nào khác.
Giải quyết xung đột quyền truy cập
Nếu bạn đã ở đúng thư mục nhưng lỗi vẫn còn, hãy kiểm tra quyền sở hữu tệp. WP-CLI cần đọc các tệp tin cốt lõi để khởi động môi trường. Nếu các tệp thuộc sở hữu của www-data (quyền 644) và bạn đang đăng nhập bằng một người dùng khác, bạn có thể bị chặn.
# Kiểm tra quyền sở hữu tệp
ls -l wp-load.php
# Kiểm tra người dùng hiện tại của bạn
whoami
Nếu có sự sai khác, hãy chạy lệnh dưới danh nghĩa người dùng của web server. Đây là giải pháp an toàn hơn so với việc thay đổi quyền tệp trên toàn hệ thống.
sudo -u www-data wp plugin list --path=/var/www/html
Xác minh cuối cùng
Chạy lệnh kiểm tra phiên bản đơn giản để xác nhận mọi thứ đã hoạt động bình thường. Nếu bạn thấy số phiên bản như 6.4.3, bạn đã kết nối thành công WP-CLI với trang web của mình.
wp core version
Danh sách kiểm tra tóm tắt
- Bạn có đang ở trong thư mục chứa tệp
wp-load.phpkhông? - Tham số
--pathcủa bạn có sử dụng đường dẫn tuyệt đối và không có dấu gạch chéo ở cuối không? - Người dùng của bạn có quyền đọc thư mục
wp-includeskhông? - Nếu sử dụng Bedrock, bạn đã trỏ đường dẫn đến thư mục con
/wpchưa?

