
Thay đổi tên miền từ blog.cooss.net sang cooss.net, tôi đã gặp phải lỗi như dưới đây khi cập nhật plugin.
Operation not permitted in ... /wp-admin/includes/class-wp-filesystem-direct.php on line 173
Việc thay đổi tên miền đã được thực hiện theo thứ tự dưới đây.
Cần đảm bảo rằng tên miền mới được kết nối đúng với thư mục mà WordPress đã được cài đặt. Nếu không, bạn có thể gặp khó khăn trong việc truy cập vào trang quản trị WordPress.
Thay đổi tên miền
Để thay đổi tên miền của trang WordPress, bạn cần thực hiện một số bước. Khi thay đổi tên miền, cần phải sửa đổi chính xác cơ sở dữ liệu và cài đặt WordPress để trang hoạt động bình thường, vui lòng tham khảo các phương pháp dưới đây.
1. Sao lưu cơ sở dữ liệu
Trước khi bắt đầu thay đổi tên miền, nên sao lưu cơ sở dữ liệu và các tệp. Cơ sở dữ liệu WordPress chứa dữ liệu quan trọng, vì vậy hãy tạo một bản sao lưu để có thể phục hồi nếu có vấn đề xảy ra.
2. Chỉnh sửa tệp wp-config.php
Mở tệp wp-config.php
và thêm hoặc chỉnh sửa hai dòng dưới đây để chỉ định tên miền mới.
define('WP_HOME', 'https://newdomain.com');
define('WP_SITEURL', 'https://newdomain.com');
Điều này sẽ thiết lập WordPress để truy cập vào tên miền mới mặc định.
(Thay thế phần newdomain.com
bằng địa chỉ tên miền mới.)
3. Thay đổi URL trong cơ sở dữ liệu
WordPress lưu trữ URL tên miền trong cơ sở dữ liệu, vì vậy bạn cần thay đổi URL cũ thành tên miền mới.
Sử dụng truy vấn SQL sau để sửa đổi URL trong bảng wp_options
. wp_
là tiền tố bảng mặc định, nếu không đúng thì hãy kiểm tra và sửa đổi tiền tố bảng.
sql복사편집UPDATE wp_options SET option_value = replace(option_value, 'https://olddomain.com', 'https://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
Các bảng khác như wp_posts
và wp_postmeta
cũng có thể sử dụng URL, vì vậy nên thay đổi URL trong tất cả các bảng.
Ví dụ truy vấn:
sql복사편집UPDATE wp_posts SET guid = replace(guid, 'https://olddomain.com','https://newdomain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'https://olddomain.com', 'https://newdomain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://olddomain.com','https://newdomain.com');
Công việc này có thể được thực hiện qua công cụ quản lý cơ sở dữ liệu (ví dụ: phpMyAdmin) hoặc qua CLI của WordPress.
4. Sử dụng plugin tìm kiếm và thay thế (tùy chọn)
Cũng có thể sử dụng plugin như Better Search Replace để thay đổi URL trong cơ sở dữ liệu. Plugin này cho phép bạn tìm và thay thế một URL cụ thể trong tất cả các bảng.
5. Cập nhật bộ nhớ cache và cài đặt permalink
Sau khi thay đổi, nên xóa bộ nhớ cache của trang và vào menu Cài đặt > Permalink trong màn hình quản trị WordPress để lưu lại cài đặt permalink. Điều này giúp phản ánh cấu trúc URL mới và ngăn ngừa lỗi liên kết.
6. Thông báo thay đổi tên miền cho Google và dịch vụ bên ngoài
Khi tên miền của trang được thay đổi, cần đăng ký và thông báo tên miền mới cho các dịch vụ bên ngoài như Google Search Console, Google Analytics. Điều này giúp giảm thiểu tác động đến SEO.
Nếu thực hiện các bước trên, việc thay đổi tên miền của trang WordPress sẽ hoàn tất.
Việc thay đổi tên miền đã thành công, và chỉ cần thực hiện đến bước 2) thì trang đã được kết nối với tên miền mới. Tuy nhiên, địa chỉ của các tệp hình ảnh đã tải lên vẫn được lưu với địa chỉ tên miền cũ, vì vậy nếu không sử dụng tên miền cũ hoặc kết nối với máy chủ khác, các hình ảnh sẽ không hiển thị. Do đó, nên thực hiện các công việc cơ sở dữ liệu còn lại. Sau khi thực hiện tất cả các công việc cơ sở dữ liệu, thay đổi ở bước 2) sẽ không còn cần thiết nữa nên có thể xóa đi. (Cũng có thể để nguyên không sao cả)
Giải quyết vấn đề cập nhật plugin
Bây giờ tôi đã tìm ra lý do tại sao việc cập nhật plugin không hoạt động tốt.
Có thể có nhiều nguyên nhân khác nhau, nhưng trong trường hợp của tôi, có vẻ như dữ liệu tạm thời được lưu trữ là vấn đề.
Tôi đã thực hiện truy vấn để xóa dữ liệu tạm thời trong mysql như dưới đây và việc cập nhật plugin đã được giải quyết.
DELETE FROM wp_options WHERE option_name LIKE '_transient_%';
DELETE FROM wp_options WHERE option_name LIKE '_site_transient_%';