WordPress Staging Site: Huong Dan A-Z Tao Clone Test Tu Plugin Den VPS

Câu trả lời nhanh
Staging site la ban sao hoan chinh cua website production, dung de test thay doi truoc khi ap dung len site chinh. Co 5 cach tao staging: dung plugin WP Staging (nhanh nhat), WP-CLI tren VPS (developer), hosting panel (cPanel/DirectAdmin), WordPress Playground (free, khong can server), hoac manual copy.

WordPress 7.1 Beta 4 vừa ra mắt ngày 29/7, và phiên bản chính thức sẽ phát hành vào 19/8 tới. Nếu bạn đang chạy site production mà chưa có staging environment để test trước khi nâng cấp, bài viết này chính là dành cho bạn.

Mình đã quản lý hơn 20 site WordPress trong 5 năm qua, và quy tắc số 1 mình luôn tuân thủ là: không bao giờ nâng cấp production trực tiếp. Bài viết này mình sẽ hướng dẫn bạn tạo WordPress staging site từ A đến Z, bao gồm 5 phương pháp khác nhau tùy theo hosting và kỹ năng của bạn.

WordPress Staging Site La Gi Va Vi Sao Ban Can No?

Staging site là một bản sao hoàn chỉnh của website production, chạy trên server riêng hoặc thư mục riêng, dùng để test thay đổi trước khi đưa lên site chính. Staging kế thừa cùng database, cùng plugin, cùng theme, nhưng hoạt động độc lập nên lỗi xảy ra cũng không ảnh hưởng đến user thật.

Nếu bạn chưa có staging, mỗi lần WordPress ra bản cập nhật lớn như 7.1, bạn đang đánh bạc với uptime site. Plugin xung đột, theme lỗi layout, white screen of death — tất cả đều có thể xảy ra. Staging giúp bạn phát hiện trước và fix sảnScroll.

Phuong Phap 1: Dung Plugin WP Staging (Nhanh Nhat Cho Beginner)

WP Staging là plugin miễn phí phổ biến nhất để tạo staging site trên WordPress. Bạn không cần kiến thức technical, chỉ cần cài plugin và bấm nút.

Bước 1: Cài plugin WP Staging. Vào Plugins > Add New, tìm “WP Staging”, cài và kích hoạt.

Bước 2: Vào WP Staging > Start. Plugin sẽ quét toàn bộ file và database của bạn. Quá trình này mất 1-5 phút tùy kích thước site.

Bước 3: Nhấn Start New Staging Process. Đặt tên cho staging site, ví dụ staging711. Plugin sẽ tạo bản sao tại đường dẫn /wp-admin/admin.php?page=wpstg_clone.

Bước 4: Khi quá trình hoàn tất, bạn sẽ thấy link vào staging site. Staging site có URL dạng https://thienlv.com/staging711/.

Bước 5: Đăng nhập vào staging site bằng cùng tài khoản admin. Lúc này bạn có thể test thoải mái: nâng cấp WordPress 7.1, cập nhật plugin, sửa theme — mọi thứ đều an toàn.

Một lưu ý quan trọng: phiên bản miễn phí của WP Staging chỉ tạo staging trên cùng server. Nếu bạn muốn push thay đổi từ staging lên production, bạn cần bản Pro (69 USD/năm). Với hầu hết người dùng, bản miễn phí đã đủ để test nâng cấp.

Phuong Phap 2: Dung WP-CLI Tao Staging Tren VPS (Developer Choice)

Nếu bạn chạy VPS và quen dùng command line, đây là phương pháp mình thích nhất. Không cần plugin, kiểm soát hoàn toàn, và staging chạy trên subdomain riêng.

Bước 1: Tạo subdomain và thư mục staging. Giả sử site chính ở /var/www/thienlv.com/public_html:

# Tao thu muc staging
sudo mkdir -p /var/www/staging.thienlv.com/public_html

# Gan quyen cho www-data
sudo chown -R www-data:www-data /var/www/staging.thienlv.com

# Tao subdomain trong Nginx
sudo nano /etc/nginx/sites-available/staging.thienlv.com

Cấu hình Nginx cho subdomain staging:

server {
    listen 80;
    server_name staging.thienlv.com;
    root /var/www/staging.thienlv.com/public_html;
    index index.php index.html;

    access_log /var/log/nginx/staging.thienlv.com.access.log;
    error_log /var/log/nginx/staging.thienlv.com.error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param PHP_VALUE "memory_limit = 512M";
    }

    # Chan search engine indexing
    add_header X-Robots-Tag "noindex, nofollow";
}
# Kich hoat subdomain
sudo ln -s /etc/nginx/sites-available/staging.thienlv.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Bước 2: Clone file từ production sang staging:

sudo rsync -av --exclude='wp-config.php' --exclude='.git' \
  /var/www/thienlv.com/public_html/ \
  /var/www/staging.thienlv.com/public_html/

Bước 3: Clone database. Đây là bước quan trọng nhất:

# Export database production
sudo -u www-data wp db export /tmp/prod_backup.sql \
  --path=/var/www/thienlv.com/public_html

# Tao database staging
sudo mysql -e "CREATE DATABASE staging_thienlv; \
  GRANT ALL PRIVILEGES ON staging_thienlv.* TO 'wp_user'@'localhost' \
  IDENTIFIED BY 'strong_password_here'; FLUSH PRIVILEGES;"

# Import vao database staging
sudo -u www-data wp db import /tmp/prod_backup.sql \
  --path=/var/www/staging.thienlv.com/public_html

Bước 4: Tạo file wp-config.php riêng cho staging:

sudo cp /var/www/thienlv.com/public_html/wp-config.php \
  /var/www/staging.thienlv.com/public_html/wp-config.php

# Sua thong tin database
sudo -u www-data nano /var/www/staging.thienlv.com/public_html/wp-config.php

Thay đổi các dòng sau:

define('DB_NAME', 'staging_thienlv');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'strong_password_here');

// Chan search engine
define('DISALLOW_INDEXING', true);

// Tat cron de tranh conflict
define('DISABLE_WP_CRON', true);

Bước 5: Cập nhật URL trong database staging. Chạy WP-CLI:

sudo -u www-data wp search-replace \
  'https://thienlv.com' \
  'https://staging.thienlv.com' \
  --path=/var/www/staging.thienlv.com/public_html \
  --skip-columns=guid

# Xoa cache
sudo -u www-data wp cache flush \
  --path=/var/www/staging.thienlv.com/public_html

# Permalink rebuild
sudo -u www-data wp rewrite flush \
  --path=/var/www/staging.thienlv.com/public_html

Sau bước này, truy cập https://staging.thienlv.com/wp-admin và đăng nhập bằng tài khoản admin. Bạn đã có staging site hoàn chỉnh.

Toàn bộ quá trình mất khoảng 10-15 phút. nhanh hơn nhiều so với cài plugin và chờ clone.

Phuong Phap 3: Dung Hosting Control Panel (cPanel/DirectAdmin)

Nếu hosting của bạn dùng cPanel, DirectAdmin, hoặc Plesk, đa số đều có tính năng staging tích hợp sẵn. Đây là cách dễ nhất cho shared hosting.

Với cPanel:

Vào Softaculous > WordPress > Manage, tìm site của bạn. Nhấn nút Clone. Chọn subdomain hoặc thư mục đích, nhấn Clone Installation. cPanel sẽ tự động clone toàn bộ file và database.

Với DirectAdmin:

Vào Extra Features > WordPress Manager, chọn site cần clone, nhấn Copy. DirectAdmin sẽ tạo bản sao tại subdirectory.

Với RunCloud/CloudPanel:

Cả hai panel này đều có nút Clone Site trực tiếp trong dashboard. Chọn site nguồn, chọn domain/subdomain đích, nhấn Clone. Quá trình mất 2-5 phút.

Mình đã test tính năng staging trên Cloudways và RunCloud, cả hai đều tạo staging trong dưới 3 phút. Nếu hosting của bạn không có tính năng này, hãy cân nhắc chuyển sang hosting có hỗ trợ staging — nó tiết kiệm hàng giờ đồng hồ mỗi tháng.

Phuong Phap 4: WordPress Playground (Free, Khong Can Server)

WordPress Playground là công cụ chính thức từ WordPress.org, cho phép chạy WordPress trực tiếp trên browser mà không cần server. Đây là cách nhanh nhất để test WordPress 7.1 nếu bạn chỉ muốn kiểm tra compatibility.

Truy cập playground.wordpress.net, bạn sẽ thấy WordPress chạy ngay trên browser. Mặc định là phiên bản mới nhất, nhưng bạn có thể chọn phiên bản cụ thể.

Để test WordPress 7.1 Beta 4, truy cập:

https://playground.wordpress.net/?wp=beta

Playground sẽ tạo instance WordPress 7.1 Beta 4 ngay lập tức. Bạn có thể cài plugin, kích hoạt theme, test tính năng mới mà không ảnh hưởng đến site thật.

Hạn chế của Playground là bạn không thể import database production dễ dàng. Nó phù hợp để test compatibility plugin/theme với bản WordPress mới, nhưng không thay thế được staging site thật cho các bài test phức tạp.

Checklist Test WordPress 7.1 Tren Staging

Sau khi tạo staging site, đây là checklist mình sử dụng trước mỗi lần nâng cấp major release. Bạn nên làm từng bước một và ghi kết quả.

1. Nang cap WordPress core len 7.1:

sudo -u www-data wp core update \
  --path=/var/www/staging.thienlv.com/public_html

2. Kiem tra theme compatibility:

# Kich hoat debug log
sudo -u www-data wp config set WP_DEBUG true --raw \
  --path=/var/www/staging.thienlv.com/public_html
sudo -u www-data wp config set WP_DEBUG_LOG true --raw \
  --path=/var/www/staging.thienlv.com/public_html

Truy cập staging site, duyệt qua các trang quan trọng: homepage, single post, page template, archive, search results, 404. Mở file wp-content/debug.log để kiểm tra PHP warning hoặc notice.

3. Test plugin compatibility:

# Cap nhat tat ca plugin len ban moi nhat
sudo -u www-data wp plugin update --all \
  --path=/var/www/staging.thienlv.com/public_html

# Kiem tra plugin nao cause fatal error
sudo -u www-data wp plugin list --status=active \
  --path=/var/www/staging.thienlv.com/public_html

Vào wp-admin, kiểm tra xem mỗi plugin có hoạt động bình thường không. Đặc biệt chú ý plugin cache (WP Rocket, LiteSpeed Cache), plugin SEO (Rank Math, Yoast), và plugin security (Wordfence).

4. Test React 19 compatibility:

WordPress 7.1 nâng cấp lên React 19, gây ra một số plugin cũ bị lỗi. Mở trang chỉnh sửa block editor, thử thêm các block phức tạp. Nếu thấy lỗi JavaScript trên console, plugin cần cập nhật.

5. Kiem tra Core Web Vitals:

Dùng PageSpeed Insights hoặc Lighthouse chạy test trên staging site. So sánh với production. Nếu điểm giảm đáng kể, có thể version mới thêm render-blocking resource hoặc thay đổi critical CSS.

6. Test e-commerce flow (neu co WooCommerce):

Thêm sản phẩm vào giỏ, đi đến checkout, test payment gateway ở sandbox mode. WooCommerce thường có compatibility issue với mỗi major WordPress release.

Sao Luu Truoc Khi Nang Cap: Khong Bao Gio Bo Qua

Dù đã có staging, việc backup production trước khi nâng cấp vẫn là bắt buộc. Staging giúp bạn phát hiện lỗi, backup giúp bạn khôi phục khi sự cố xảy ra ngoài ý muốn.

Backup bằng WP-CLI:

# Backup database
sudo -u www-data wp db export /backups/thienlv_pre_711_$(date +%Y%m%d).sql \
  --path=/var/www/thienlv.com/public_html

# Backup files
sudo tar -czf /backups/thienlv_files_$(date +%Y%m%d).tar.gz \
  -C /var/www/thienlv.com public_html

Hoặc dùng plugin UpdraftPlus (miễn phí) để backup tự động lên Google Drive, Dropbox, hoặc S3. Mình cấu hình UpdraftPlus backup database mỗi 12 giờ và file mỗi 24 giờ.

Nếu dùng VPS, bạn có thể tự động hóa backup bằng cron job kết hợp với restic hoặc duplicity để incremental backup, tiết kiệm dung lượng.

Cac Loi Thuong Gap Khi Tao Staging WordPress

Loi 1: Staging site hien trang trang (white screen).

Nguyên nhân phổ biến nhất là PHP version mismatch. Nếu production chạy PHP 8.3 nhưng staging chạy PHP 7.4, một số plugin sẽ fatal error. Kiểm tra PHP version:

php -v
sudo -u www-data wp eval 'echo PHP_VERSION;' \
  --path=/var/www/staging.thienlv.com/public_html

Đảm bảo staging chạy cùng PHP version với production. Nếu production dùng PHP 8.4 (như mình đã hướng dẫn nâng cấp PHP 8.4), staging cũng phải dùng 8.4.

Loi 2: Hinh anh khong hien thi tren staging.

Nguyên nhân: URL hình ảnh trong database vẫn trỏ về production domain. Chạy search-replace:

sudo -u www-data wp search-replace \
  'https://thienlv.com' 'https://staging.thienlv.com' \
  --path=/var/www/staging.thienlv.com/public_html \
  --skip-columns=guid

Loi 3: Redirect loop khi vao staging.

Thường do plugin SEO (Rank Math, Yoast) tự redirect về production domain. Vào database staging, tắt tạm thời redirect:

sudo -u www-data wp option update rank_math_redirections_enabled false \
  --path=/var/www/staging.thienlv.com/public_html

# Hoac voi Yoast
sudo -u www-data wp option update wpseo_redirect false \
  --path=/var/www/staging.thienlv.com/public_html

Loi 4: Staling site bi Google index.

Đây là lỗi nghiêm trọng. Staging site trùng nội dung với production sẽ gây duplicate content penalty. Đảm bảo staging có header X-Robots-Tag: noindex, nofollow (đã thêm trong config Nginx ở trên) và kiểm tra:

curl -sI https://staging.thienlv.com/ | grep -i robots

Kết quả phải trả về x-robots-tag: noindex, nofollow.

Staging Tren Cloudflare: Luu Y Cache Va SSL

Nếu production đi qua Cloudflare, staging cũng cần cấu hình riêng. Mình đã từng gặp trường hợp staging site bị Cloudflare cache, dẫn đến test không chính xác.

Vào Cloudflare dashboard, tạo Page Rule cho subdomain staging:

  • URL: staging.thienlv.com/*
  • Cache Level: Bypass
  • SSL: Full (không Flexible)

Hoặc dùng Cloudflare Cache Rules mới, hiệu quả hơn Page Rules. Tạo rule: nếu hostname = staging.thienlv.com, bật Development Mode, bypass tất cả cache.

Nếu staging dùng certificate tự ký (self-signed), Cloudflare SSL mode phải đặt Full, không dùng Full (Strict). Tốt nhất là dùng Let’s Encrypt cho staging subdomain:

sudo certbot --nginx -d staging.thienlv.com

Tom Tat: Staging La Ban Giao Dinh Cua WordPress

Nếu bạn chỉ nhớ một điều từ bài viết này, hãy nhớ: staging site không phải optional, nó là bắt buộc. WordPress 7.1 phát hành ngày 19/8, và nếu bạn chưa có staging, bây giờ là lúc tạo.

Tóm tắt 5 phương pháp:

  • Plugin WP Staging: nhanh nhất, cho beginner, 5 phút
  • WP-CLI trên VPS: kiểm soát hoàn toàn, cho developer, 15 phút
  • Hosting panel: dễ nhất nếu hosting hỗ trợ, 3 phút
  • WordPress Playground: miễn phí, không cần server, test nhanh
  • Manual copy: cho server phức tạp, 30 phút

Kết hợp staging với tối ưu tốc độ WordPresssecurity headers, bạn sẽ có workflow chuyên nghiệp không kém gì agency. Nếu gặp lỗi khi tạo staging, để lại comment bên dưới, mình sẽ hỗ trợ.

Thanh Tùng

Mình là Thanh Tùng. Bạn bè gọi mình là "bác sĩ máy tính" vì hễ máy nào có vấn đề là mình muốn mò vào xem sao. Mình viết hướng dẫn theo cách mà mình mong người khác đã viết cho mình ngày xưa — từng bước rõ ràng, không bỏ sót, và nói luôn cái gì hay bị lỗi. Ngoài giờ làm mình chơi guitar, nuôi mèo, và có một con VPS riêng dành riêng cho việc cài thử đủ thứ linh tinh.

Xem tất cả bài viết →

Để 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 *