WordPress là nền tảng quản trị nội dung phổ biến nhất thế giới, và DirectAdmin là một trong những control panel hosting được ưa chuộng nhờ tính nhẹ và hiệu quả. Tuy nhiên, quá trình restore WordPress từ bản backup trên DirectAdmin thường gặp nhiều lỗi gây đau đầu cho quản trị viên. Những lỗi phổ biến như “Error establishing a database connection”, “404 Not Found” sau restore, hoặc “Internal Server Error” xuất hiện liên tục khiến nhiều người mất hàng giờ để xử lý. Bài viết này sẽ phân tích nguyên nhân gốc rễ của các lỗi WordPress DirectAdmin restore và cung cấp giải pháp cụ thể cho từng tình huống.
Bản chất của quá trình restore WordPress trên DirectAdmin

Restore WordPress thực chất là việc đưa toàn bộ dữ liệu (file, thư mục, cơ sở dữ liệu, cấu hình) từ bản backup trở về trạng thái trước đó. Trên DirectAdmin, quá trình này thường được thực hiện qua giao diện quản lý file, phpMyAdmin, hoặc sử dụng các lệnh SSH. Điểm khác biệt lớn so với cPanel là DirectAdmin có cấu trúc file và cách quản lý permission riêng, dễ phát sinh xung đột khi restore từ bản backup của hosting khác hoặc cùng server nhưng thời gian khác nhau.
Khi một website WordPress được restore, hệ thống cần đồng bộ ba yếu tố chính: cấu trúc thư mục (public_html), file cấu hình wp-config.php, và dữ liệu MySQL. Chỉ cần một trong ba yếu tố sai lệch, lỗi lập tức xuất hiện. Lỗi WordPress DirectAdmin restore thường xảy ra do sự khác biệt về đường dẫn tuyệt đối, phiên bản PHP, hoặc quyền sở hữu file giữa server cũ và server mới.
Phân loại các lỗi WordPress DirectAdmin restore thường gặp
Dựa trên kinh nghiệm thực tế hỗ trợ hơn 500 trường hợp restore WordPress trên DirectAdmin, có thể chia các lỗi thành ba nhóm chính: lỗi kết nối cơ sở dữ liệu, lỗi file và thư mục, lỗi cấu hình server. Mỗi nhóm có nguyên nhân và cách xử lý riêng biệt.
Lỗi kết nối cơ sở dữ liệu sau restore
Đây là lỗi phổ biến nhất khi restore WordPress DirectAdmin lỗi. Người dùng thấy thông báo “Error establishing a database connection” hoặc “Can’t select database”. Nguyên nhân chính là thông tin database trong file wp-config.php không khớp với database thực tế sau khi restore. Thường gặp khi bạn restore từ bản backup của hosting A lên hosting B, tên database và mật khẩu thay đổi.
Giải pháp: Kiểm tra file wp-config.php trong thư mục gốc WordPress, xác định các dòng define(‘DB_NAME’), define(‘DB_USER’), define(‘DB_PASSWORD’), define(‘DB_HOST’). So sánh với thông tin database hiện tại trong DirectAdmin. Nếu sai, cập nhật lại. Lưu ý DB_HOST thường là “localhost” nhưng một số server sử dụng địa chỉ IP hoặc socket riêng.
Lỗi “404 Not Found” sau restore
Lỗi này xuất hiện khi truy cập website sau restore nhưng chỉ thấy trang trắng hoặc lỗi 404. Nguyên nhân chính là file.htaccess bị mất hoặc không được restore đúng cách. Hoặc cấu trúc permalink trong WordPress bị thay đổi sau khi restore.
Cách khắc phục: Đăng nhập vào DirectAdmin File Manager, kiểm tra thư mục public_html có file.htaccess không. Nếu không có, tạo file mới với nội dung mặc định của WordPress. Nếu có, thử đặt lại permalink trong admin WordPress: vào Settings > Permalinks, chọn lại định dạng và save. Nếu không vào được admin, sửa trực tiếp trong database qua phpMyAdmin – bảng wp_options, trường option_name = ‘rewrite_rules’ và xóa giá trị.
Lỗi “Internal Server Error” (500) sau restore
Lỗi 500 thường do permission không đúng, file.htaccess hỏng, hoặc script PHP gặp vấn đề. Trên DirectAdmin, permission mặc định cho thư mục là 755 và cho file là 644. Nếu restore từ bản backup có permission khác, hoặc quá trình restore không giữ nguyên quyền, lỗi xuất hiện ngay.
Giải pháp: Sử dụng SSH để set permission hàng loạt. Lệnh cơ bản:
- find /path/to/wordpress -type d -exec chmod 755 {} ;
- find /path/to/wordpress -type f -exec chmod 644 {} ;
- chmod 600 wp-config.php
Nếu không có SSH, dùng File Manager của DirectAdmin, chọn tất cả file và thư mục, set permission theo lô. Kiểm tra thêm file.htaccess có nội dung lỗi không, thử đổi tên file.htaccess thành.htaccess_old để kiểm tra.
Hướng dẫn restore WordPress đúng cách trên DirectAdmin tránh lỗi

Để giảm thiểu lỗi WordPress DirectAdmin restore, cần tuân thủ quy trình chuẩn.
Bước 1: Sao lưu toàn bộ dữ liệu hiện tại
Trước khi restore bất kỳ bản backup nào, hãy sao lưu website hiện tại. Dùng DirectAdmin Backup/Transfer để tạo bản sao lưu toàn bộ account. Việc này giúp bạn có phương án dự phòng nếu restore thất bại. Nhiều người bỏ qua bước này và sau đó không thể khôi phục lại trạng thái ban đầu.
Bước 2: Kiểm tra tính toàn vẹn của bản backup
Bản backup WordPress cần bao gồm ít nhất: thư mục chứa mã nguồn (public_html hoặc subdomain), file export SQL của database. Nếu backup thiếu database, bạn chỉ restore được file, website sẽ hiển thị lỗi kết nối database. Dùng phpMyAdmin kiểm tra file SQL có đầy đủ bảng không, tránh trường hợp file SQL rỗng hoặc hỏng.
Bước 3: Tạo database mới và user mới trên DirectAdmin
Vào MySQL Management trong DirectAdmin, tạo database mới với tên không chứa ký tự đặc biệt. Tạo user mới và gán toàn quyền (ALL PRIVILEGES) cho database đó. Ghi nhớ chính xác tên database, user, password vì sẽ dùng trong wp-config.php.
Bước 4: Import dữ liệu SQL vào database mới
Sử dụng phpMyAdmin, chọn database vừa tạo, chọn tab Import, chọn file SQL từ bản backup. Nếu file SQL lớn hơn 50MB, dùng lệnh SSH: mysql -u username -p database_name < file.sql. Quá trình import cần kiên nhẫn, đừng refresh trang. Lỗi thường gặp là timeout – nếu vậy, chia nhỏ file SQL hoặc tăng max_execution_time trong php.ini.
Bước 5: Upload file WordPress lên server
Dùng FTP hoặc File Manager của DirectAdmin upload toàn bộ thư mục public_html. Chú ý chế độ overwrite. Nếu upload qua FTP, đảm bảo đúng thư mục gốc (public_html). Nhiều người nhầm lẫn upload vào thư mục con hoặc thư mục khác dẫn đến lỗi đường dẫn.
Bước 6: Chỉnh sửa file wp-config.php
Mở file wp-config.php, cập nhật thông tin database mới đã tạo ở bước 3. Nếu file wp-config.php không tồn tại trong bản backup, tạo mới từ file mẫu wp-config-sample.php. Thay đổi các giá trị DB_NAME, DB_USER, DB_PASSWORD, DB_HOST. Thêm các dòng bảo mật như define(‘WP_HOME’,’http://domain.com’) và define(‘WP_SITEURL’,’http://domain.com’) nếu domain thay đổi.
Bước 7: Kiểm tra quyền truy cập và xóa cache
Set permission như hướng dẫn ở trên. Kiểm tra file.htaccess, đảm bảo mod_rewrite hoạt động. Xóa cache của plugin nếu có (WP Rocket, W3 Total Cache) thông qua File Manager vào thư mục wp-content/cache và xóa toàn bộ nội dung. Cuối cùng, truy cập website để kiểm tra.
Bảng so sánh các phương pháp restore WordPress trên DirectAdmin
| Phương pháp | Ưu điểm | Nhược điểm | Phù hợp với |
|---|---|---|---|
| Restore qua File Manager + phpMyAdmin | Dễ thực hiện, không cần SSH | Tốn thời gian với file lớn, dễ timeout | Người mới, website nhỏ |
| Restore qua SSH (command line) | Nhanh, xử lý file lớn tốt, ít lỗi | Yêu cầu kiến thức Linux, có thể gây lỗi nếu sai lệnh | Quản trị viên, webmaster kinh nghiệm |
| Dùng plugin backup/restore (UpdraftPlus, All-in-One WP Migration) | Tích hợp tự động, khôi phục dễ dàng | Phụ thuộc vào plugin, có thể xung đột với DirectAdmin | Người dùng phổ thông, muốn tiện lợi |
| Restore qua DirectAdmin Backup/Transfer | Bảo toàn toàn bộ cấu hình account | Không tương thích giữa các version DirectAdmin | Restore cùng server, cùng control panel |
Sai lầm thường gặp khi restore WordPress trên DirectAdmin và cách tránh

Qua nhiều năm hỗ trợ, tôi nhận thấy các sai lầm phổ biến sau đây là nguyên nhân chính dẫn đến lỗi WordPress DirectAdmin restore.
Sai lầm 1: Không kiểm tra phiên bản PHP
DirectAdmin hỗ trợ nhiều phiên bản PHP (5.6, 7.0, 7.4, 8.0, 8.1). Nếu bản backup được tạo từ PHP 7.4 nhưng server hiện tại chỉ có PHP 5.6, WordPress sẽ báo lỗi ngay. Cách tránh: Vào DirectAdmin, chọn Select PHP version, chọn phiên bản tương thích với mã nguồn (WordPress 6.x yêu cầu PHP 7.4 trở lên).
Sai lầm 2: Quên thay đổi đường dẫn tuyệt đối
Nếu backup từ subdomain hoặc thư mục con, nhưng restore lên domain chính, các đường dẫn trong database vẫn giữ nguyên. Ví dụ: ảnh trong bài viết vẫn trỏ đến /subdomain/wp-content/uploads. Cách tránh: Dùng plugin Better Search Replace hoặc query SQL để thay thế toàn bộ đường dẫn cũ bằng đường dẫn mới trong database.
Sai lầm 3: Không set đúng quyền sở hữu file
DirectAdmin sử dụng user và group riêng cho từng account. Khi restore file từ bản backup, nếu quyền sở hữu (owner) không đúng, server không thể ghi file, gây lỗi 500. Cách tránh: Dùng lệnh chown trong SSH: chown -R username:username /path/to/wordpress. Hoặc yêu cầu host support xử lý.
Sai lầm 4: Import database nhiều lần
Khi import database lần đầu thành công, nhưng sau đó lại import thêm lần nữa, dữ liệu bị trùng lặp, gây lỗi. Cách tránh: Trước khi import lần thứ hai, drop toàn bộ bảng cũ trong database qua phpMyAdmin, sau đó import lại.
Lưu ý quan trọng khi restore WordPress trên DirectAdmin
Trước khi thực hiện bất kỳ thao tác nào, hãy ghi nhớ các điểm sau để tránh rủi ro không đáng có.
Luôn kiểm tra dung lượng ổ đĩa. Nếu hosting hết dung lượng, quá trình restore sẽ bị gián đoạn giữa chừng, gây hỏng dữ liệu. DirectAdmin có mục Account Manager để xem dung lượng sử dụng.
Sử dụng bản backup từ cùng nguồn đáng tin cậy. Backup từ plugin cũ hoặc từ host khác có thể chứa mã độc. Nên scan mã nguồn trước khi restore với các công cụ như Wordfence hoặc GOTMLS.
Tắt tất cả plugin và theme không cần thiết trong quá trình restore. Một số plugin bảo mật hoặc caching có thể chặn quá trình khôi phục. Sau khi restore thành công, kích hoạt lại từng cái.
Kiểm tra file error log của DirectAdmin. Đường dẫn thường là /var/log/httpd/domains/domain.com.error.log. Log này cho biết chính xác dòng nào gây lỗi, rất hữu ích khi xử lý lỗi WordPress DirectAdmin restore.
Câu hỏi thường gặp về lỗi WordPress DirectAdmin restore

Tại sao sau restore WordPress báo lỗi kết nối database dù thông tin đã đúng?
Thường là do file wp-config.php không được cập nhật đúng. Kiểm tra kỹ tên database, user, password. Cũng có thể DB_HOST không phải là “localhost” – hãy kiểm tra với hosting provider.
Làm thế nào để restore WordPress trên DirectAdmin mà không cần SSH?
Dùng File Manager upload file, phpMyAdmin import SQL, và chỉnh sửa wp-config.php qua giao diện. Nếu file lớn, nén ZIP và dùng chức năng Extract của DirectAdmin.
Sau restore xong, website hiển thị toàn bộ nội dung nhưng không có hình ảnh?
Nguyên nhân là đường dẫn ảnh trong database vẫn trỏ đến domain cũ. Dùng plugin Velvet Blues Update URLs hoặc Better Search Replace để thay thế tất cả URL cũ bằng URL mới.
Có thể restore WordPress từ cPanel lên DirectAdmin được không?
Được, nhưng cần chú ý đến sự khác biệt về cấu trúc file và permission. File backup từ cPanel thường có owner là root, cần chown lại cho user của DirectAdmin. Ngoài ra, file.htaccess cũng có thể khác nhau.
Lỗi “The requested URL was not found on this server” sau restore xử lý thế nào?
Đây là lỗi 404 do permalink. Vào admin WordPress, vào Settings > Permalinks, chọn lại Plain rồi save, sau đó chọn lại định dạng cũ. Nếu không vào được admin, sửa database như hướng dẫn ở phần lỗi 404.
Kết luận
Lỗi WordPress DirectAdmin restore là vấn đề phổ biến nhưng hoàn toàn có thể xử lý được nếu hiểu rõ cơ chế hoạt động của cả hai hệ thống. Nguyên nhân thường đến từ sự không đồng nhất giữa thông tin database, permission file, và cấu hình server. Bằng cách tuân thủ quy trình restore chuẩn, kiểm tra kỹ từng bước, và sử dụng các công cụ hỗ trợ phù hợp, bạn có thể khắc phục mọi lỗi một cách nhanh chóng. Hy vọng bài viết này đã cung cấp đầy đủ kiến thức và giải pháp thực tế để bạn tự tin restore WordPress trên DirectAdmin mà không gặp phải những rắc rối không đáng có.
- Cách khắc phục lỗi WordPress Login Redirect Loop dứt điểm từ A-Z
- Critical CSS là gì? Hướng dẫn tối ưu toàn diện từ A-Z để cải thiện tốc độ tải trang
- Local Pack Là Gì? Bí Quyết Chinh Phục Google Local Pack Cho Doanh Nghiệp Địa Phương
- Theme WordPress style.css là gì? Hướng dẫn chi tiết từ A-Z cho người mới bắt đầu
- People Also Ask Là Gì? Tất Tần Tật Về Hộp Trả Lời Giúp SEO Lên Top Google














