Cập nhật phần mềm và sao lưu dữ liệu

Phần mềm cài trên hosting của cửa hàng, nên dữ liệu và bản sao lưu là việc của cửa hàng. Bài này nói sao lưu những gì, giữ ở đâu, và cách lên bản mới mà không mất dữ liệu.

Bắt buộc Ai làm: chủ cửa hàng hoặc người quản trị hosting Cập nhật 04.11.2026

Dữ liệu nằm ở đâu

Dữ liệu cửa hàng nằm ở ba chỗ trên hosting. Mất chỗ nào là mất phần đó:

ChỗChứa gì
DatabaseSản phẩm, đơn hàng, phiếu nhập, tồn kho, khách hàng, phiếu thu chi, thiết lập. Phần lớn dữ liệu nằm ở đây.
Thư mục storage/app/publicẢnh sản phẩm, logo, file đính kèm của đơn và phiếu.
File .envKết nối database và khoá APP_KEY. Mật khẩu SMTP, M-Invoice, khoá WooCommerce lưu trong database ở dạng mã hoá bằng khoá này; mất file .env thì phải nhập lại các mật khẩu đó.

Sao lưu

Sao lưu đủ ba chỗ trên, mỗi ngày một bản, và thêm một bản ngay trước mỗi lần cập nhật.

Hosting cPanel

  • Trang chủ cPanel có mục JetBackup (nhóm Files) nghĩa là hosting đã tự sao lưu. Mở mục đó xem bản sao lưu giữ được bao nhiêu ngày và cách khôi phục một database hoặc một thư mục.
  • Không có JetBackup thì hỏi nhà cung cấp hosting gói có sao lưu tự động hằng ngày không.
  • Tự sao lưu tay: phpMyAdmin, chọn database, bấm Export; trong File Manager nén thư mục storage/app/public và tải về máy cùng file .env.

VPS

Dùng lệnh xuất database (mariadb-dump hoặc mysqldump) và nén thư mục storage/app/public, đặt vào cron chạy mỗi đêm. Lệnh mẫu đầy đủ có trong file hướng dẫn cài đặt trên VPS đi kèm gói phần mềm.

Bản sao lưu nằm cùng máy chủ thì mất cùng máy chủ

Chép bản sao lưu ra ngoài hosting: tải về máy tính, hoặc đẩy lên Google Drive. Thử khôi phục một lần trên một database trống để chắc bản sao lưu dùng được.

Phần mềm tự kiểm bản mới

Mỗi tuần một lần, phần mềm tự hỏi máy chủ DevVN có bản mới không (cùng lúc kiểm license). Có cron thì việc này chạy nền; không có cron thì chạy sau khi có người đăng nhập mở trang. Muốn xem ngay thì vào Thiết lập, tab Cập nhật phần mềm, bấm Kiểm tra ngay.

Tab Cập nhật phần mềm với khung License và khung Phiên bản ghi Đang dùng bản 0.14.0
Ảnh chụp ở bản cài chưa kích hoạt license. Bản đã kích hoạt có thêm nút Kiểm tra ngay, và khi có bản mới thì khung Phiên bản hiện danh sách thay đổi. Bấm vào ảnh để phóng to.

License được nhận bản mới trong 1 năm kể từ ngày mua. Hết hạn nhận bản mới, phần mềm vẫn chạy đủ chức năng ở bản đang dùng. Cách kích hoạt license xem ở Cài đặt & license.

Cập nhật từ trong phần mềm

  1. Sao lưu database như mục trên. Phần mềm tự giữ bản sao các file bị thay và tự trả lại khi lỗi, nhưng không sao lưu database.
  2. Chọn lúc vắng khách. Trong lúc cập nhật, phần mềm tạm dừng khoảng 1 đến 2 phút, nhân viên đang dùng sẽ thấy trang bảo trì.
  3. Ở tab Cập nhật phần mềm, tích ô Tôi đã sao lưu database.
  4. Bấm Cập nhật lên bản x.y.z, đồng ý ở hộp xác nhận.
  5. Phần mềm tải gói, kiểm mã SHA-256 của gói, ghi file mới và cập nhật database. Xong, khung Phiên bản ghi số bản mới.

Trên hosting cPanel, cách này tự giữ dòng chọn PHP trong file .htaccess. Trên VPS, cả thư mục phần mềm phải thuộc user chạy PHP (thường là www-data) thì phần mềm mới ghi được file mới.

Cập nhật bằng tay

Dùng khi license đã hết hạn nhận bản mới mà DevVN gửi gói qua Zalo, hoặc nút trong phần mềm báo lỗi.

  1. Sao lưu database và thư mục storage/app/public.
  2. Giải nén gói zip bản mới đè lên thư mục phần mềm. Gói không chứa .env và ảnh đã upload nên hai thứ đó giữ nguyên.
  3. Chạy php artisan migrate --force trong thư mục phần mềm để cập nhật cấu trúc database. Dòng có chữ DONE là một thay đổi đã chạy xong; báo "Nothing to migrate" cũng là kết quả đúng.
  4. Trên cPanel, mở lại MultiPHP Manager chọn PHP 8.3 cho tên miền. Trên VPS, chạy thêm php artisan optimize.

Lệnh đầy đủ cho từng loại hosting có trong file hướng dẫn cài đặt đi kèm gói phần mềm.

Kiểm tra sau khi cập nhật

  1. Khung Phiên bản ở tab Cập nhật phần mềm ghi đúng số bản mới.
  2. Mở Tổng quan, POS, một báo cáo: các trang hiện bình thường.
  3. Bán thử một đơn nhỏ rồi xoá đi.

Hay vướng

Hiện tượngCách xử lý
Không thấy nút Cập nhật lên bản mớiChưa có bản mới, license chưa kích hoạt, hoặc đã hết hạn nhận bản mới. Bấm Kiểm tra ngay rồi đọc dòng trạng thái.
Trang báo "Phần mềm cần PHP 8.3 trở lên" sau khi cập nhật tay trên cPanelGiải nén đè làm mất dòng chọn PHP trong .htaccess. Chọn lại PHP 8.3 ở MultiPHP Manager.
Khôi phục database rồi mà mật khẩu SMTP, M-Invoice báo saiFile .env đang dùng khác file lúc sao lưu (khác APP_KEY). Chép lại .env cũ, hoặc nhập lại các mật khẩu đó.

Còn thắc mắc khác: xem Giải đáp thắc mắc.

Hỗ trợ Zalo