Tạo Staging cho website WordPress trên cPanel [NEW]

Giả sử bạn có một trang web WordPress, sau đó bạn cần nâng cấp hoặc thêm một số tính năng trên trang web của mình và thuê một công ty gia công phần mềm hoặc nhân viên bên ngoài để đảm nhận việc này. Lúc này bạn sẽ hơi lo lắng rằng có thể không cung cấp cho họ thông tin hosting / server đang chạy website và họ làm việc trên đó, điều đó quá nguy hiểm vì đôi khi chúng ta sẽ không cảm thấy thoải mái nếu cả Website “lên đời” trong bàn tay của người khác ?.

Vì giả sử nếu họ làm trên website đang chạy thì khách hàng sẽ có lúc thấy giao diện bị lỗi do họ đang làm, hoặc làm dưới localhost của lập trình viên thì bạn sẽ không tiện theo dõi tiến độ dự án.

Nếu bạn đã từng rơi vào trường hợp khó khăn này, đừng lo lắng, trong bài viết này tôi sẽ nói về kỹ thuật phân chia môi trường cho website đang được sử dụng rất nhiều trên các công ty hoặc website / ứng dụng quy mô lớn. Ứng dụng cần đảm bảo tính minh bạch và rõ ràng trong quá trình phát triển mã bên trong.

Hầu hết các môi trường lập trình đều được thiết lập rất phức tạp trên các hệ thống máy chủ riêng hoặc VPS, tuy nhiên trong bài viết này mình sẽ hướng dẫn chi tiết việc phân chia môi trường trên hosting bằng bảng điều khiển cPanel, hoàn toàn thủ công và miễn phí. Tất nhiên, nếu có thời gian, tôi sẽ xem lại một số plugin trả phí giúp môi trường dàn dựng rất nhanh.

Nếu bạn nghe cụm từ “môi trường” còn quá xa lạ thì hãy tham khảo bài viết về môi trường lập trình cực hay của anh Phạm Huy Hoàng.

Các vấn đề môi trường cần giải quyết

Trước khi đi vào vấn đề chính, mình sẽ giả sử môi trường mình cần thiết lập như sau:

  • Môi trường sản xuất: Trang web chính với tên miền azdigiweb.com chạy trên máy chủ cPanel.
  • Môi trường sân khấu: Trang web có tên miền demo.azdigiweb.com được sử dụng để xem xét và kiểm tra các chức năng mới.
  • Môi trường địa phương: Trang web dưới localhost với tên miền localhost / azdigiweb.local cho các lập trình viên hoặc các công ty phát triển web, sử dụng để tạo ra các tính năng mới.

Điều đó có nghĩa là lập trình viên sẽ làm việc trong môi trường Local, sau khi làm như vậy sẽ đẩy mã sang môi trường Staging. Tại đây bạn sẽ thấy công việc thực tế mà họ đã hoàn thành (bằng cách nhìn vào git diff), nếu ổn thì bạn tiến hành chuyển thủ công dữ liệu đã làm sang môi trường Sản xuất để đảm bảo không ai động vào. trang web đang chạy.

Tạo Staging cho website WordPress trên cPanel [NEW]

Và trong bài viết này, mình sẽ hướng dẫn chi tiết cách thiết lập môi trường Staging và Production trên cùng một gói host bằng cách sử dụng bảng điều khiển cPanel, và cách đồng bộ dữ liệu đã chỉnh sửa thông qua tính năng. Kiểm soát phiên bản Git ™ trên cPanel.

Lời yêu cầu

Để tiếp tục làm theo hướng dẫn của bài viết này, bạn cần thiết lập như sau:

  • Sao chép trang web chính thành một bản sao để dàn dựng và cài đặt nó trên cùng một máy chủ lưu trữ với trang web chính bằng tên miền phụ. Bạn có thể sử dụng plugin Duplicator để nhân bản trang web của mình một cách nhanh chóng, trong video mình sẽ trình bày phần này.
  • Có một phần mềm localhost dưới máy tính, bạn có thể sử dụng LocalWP vì trong bài viết này mình sẽ sử dụng phần mềm này.
  • Trang bị kiến ​​thức cơ bản về Git.
  • Có thể sử dụng các lệnh đầu cuối cơ bản như ls, cd, cat
  • Máy chủ đang sử dụng cPanel hỗ trợ tính năng Kiểm soát phiên bản Git ™Phần cuối. Khách hàng sử dụng hosting tại AZDIGI đều hỗ trợ các tính năng này.

Bước 1. Tạo kho lưu trữ git cho trang web dàn dựng và kết nối với localhost

Trước tiên, bạn sẽ cần tạo một kho lưu trữ git trên thư mục của trang web đang thực hiện môi trường dàn dựng trên máy chủ cPanel, sau đó kết nối thư mục của môi trường cục bộ với kho lưu trữ này.

Trước khi tạo, hãy vào thư mục dàn trang trên máy chủ mà bạn vừa sao chép, tạo một tệp có tên .gitignore với nội dung sau:

wp-config.php
wp-content/cache/
debug.log
wp-content/advanced-cache.php
wp-content/object-cache.php

Tập tin này sẽ bỏ qua một số tập tin khi đồng bộ giữa các máy để tránh lỗi cấu hình.

Bây giờ, hãy truy cập bảng điều khiển cPanel của bạn và tìm Kiểm soát phiên bản Git ™.

Tạo Staging cho trang web WordPress trên cPanel 23

Sau đó bỏ chọn Sao chép kho lưu trữ và nhập đường dẫn thư mục dàn và tên kho lưu trữ để tạo.

Tạo Staging cho trang web WordPress trên cPanel 24

Sau đó, bạn sẽ được đưa đến bước thiết lập git cho kho này. Ở đây chúng tôi sẽ sao chép trang web dàn dựng sang localhost thông qua git, vì vậy chúng tôi sẽ chọn tùy chọn Để bắt đầu một dự án mới mà cPanel gợi ý.

Tạo Staging cho Website WordPress trên cPanel 25

Trên máy tính, bạn sử dụng lệnh và truy cập vào thư mục trang web trên localhost. Ví dụ, tôi sử dụng macOS và sử dụng Ampps, đường dẫn như sau:

cd /LocalSite/azdigiweb/app/public

Sau đó nhân bản git mới tạo trên cPanel, nó hỏi mật khẩu, sau đó nhập mật khẩu để truy cập cPanel.

git clone ssh://[email protected]:2210/home/azdigiweb/demo.azdigiweb.com .

Nhớ đặt dấu chấm (.) ở cuối vì chúng ta sẽ nhân bản vào thư mục mà chúng ta đang truy cập.

Sau đó tiến hành tạo tệp README.md và cố gắng cam kết với kho lưu trữ git của trang web dàn dựng.

echo "# README" >> README.md
git add .
git commit -m "Init commit"
git push -u origin master

Kết quả thành công sẽ trả về như sau:

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 225 bytes | 225.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Recieved update on checked-out branch, queueing deployment.
remote: --- 
remote: apiversion: 3
remote: func: create
remote: module: VersionControlDeployment
remote: result: 
remote:   data: ~
remote:   errors: ~
remote:   messages: ~
remote:   metadata: {}
remote: 
remote:   status: 1
remote:   warnings: ~
To ssh://azdigiweb.com:2210/home/azdigiweb/demo.azdigiweb.com

 * [new branch]      master -> master

Branch 'master' set up to track remote branch 'master' from 'origin'.

Okay vậy là chúng ta đã hoàn thành bước tạo kho git cho dàn trang và kết nối với máy tính.

Bước 2. Di chuyển dữ liệu trang web dàn dựng sang máy chủ cục bộ thông qua git

Cho đến thời điểm này, không có dữ liệu nào dưới localhost của chúng tôi, mà chỉ có thư mục trang web được kết nối với kho lưu trữ git trên cPanel. Bây giờ chúng ta sẽ tiến hành kéo dữ liệu từ dàn máy về localhost thông qua git để giữ cho nó được đồng bộ, để dễ dàng thao tác.

Quay trở lại giao diện cPanel, chúng ta sẽ tiến hành sao lưu cơ sở dữ liệu của dàn website, ở đây mình sử dụng câu lệnh có tính năng Terminal trên host vì chúng ta cần file cơ sở dữ liệu lưu trên host để kéo về cùng lúc.

Bạn nhập Phần cuối trên cPanel.

Tạo Staging cho trang web WordPress trên cPanel 26

Sau đó sử dụng lệnh cd để truy cập thư mục trang web dàn dựng, ví dụ:

cd demo.azdigihost.com/

Sau đó sử dụng lệnh mysqldump để lấy thông tin cơ sở dữ liệu (thực ra một cách thậm chí còn nhanh hơn là chạy lệnh wp db export nhưng không phải shared host nào cũng cài WP-CLI, tất nhiên nó phải nằm trong AZDIGI?).

mysqldump -u dbuser -p dbname > db.sql

Bạn thay đổi dbuser vào tên người dùng cơ sở dữ liệu và dbname đến tên cơ sở dữ liệu của trang web dàn dựng. Sau khi nhấn Enter, nhập mật khẩu MySQL (có thể dán bằng Ctrl + V). Quên thông tin này, hãy mở tệp wp-config.php và xem.

Sau đó gõ lệnh ls -alh xem có tệp db.sql không và nó phải có dung lượng để hoàn thành.

Tạo Staging cho Website WordPress trên cPanel 27

Sau đó, bạn gõ lệnh sau để thêm tất cả các tệp trên thư mục staging site vào git.

git add .
git commit -m "Them ma nguon staging vao Git"

Nếu bạn gặp lỗi tử vong: tên nhận dạng trống Trên máy chủ, chạy 2 lệnh sau, đổi thành tên và email của bạn:

git config --global user.email "[email protected]"
git config --global user.name "Thach Pham"

Sau đó chạy lại lệnh git commit như trên.

Sau khi cam kết hoàn tất, hãy quay lại localhost và sử dụng lệnh để truy cập vào thư mục của trang web dàn dựng đã được nhân bản ở bước 1, sau đó chạy lệnh git pull origin master. Bây giờ nó sẽ tải xuống các tệp bạn đã thêm vào git trên máy chủ cPanel.

Sau khi nhân bản xong, bạn có thể kiểm tra mã nguồn mới tải về qua git xem đã đủ chưa.

Bây giờ bạn tiến hành tạo cơ sở dữ liệu trên localhost, sau đó nhập tệp tin vào db.sql vào và đổi tên wp-config-sample.php thành wp-config.php và thiết lập kết nối cơ sở dữ liệu với localhost, và thêm phần sau để đặt mã nguồn sử dụng tên miền của localhost, nhớ chỉnh sửa thông tin như miền trên máy chủ cục bộ của bạn:

define( 'WP_HOME', 'http://localhost/azdigiweb.local' );
define( 'WP_SITEURL', 'http://localhost/azdigiweb.local' );

Bây giờ bạn kiểm tra xem trang web trên localhost đã chạy hoàn chỉnh chưa, nếu chưa thì làm lại khi nó chạy.

Như vậy là bạn đã hoàn thành bước thiết lập website dưới localhost bằng cách lấy mã nguồn thông qua git. Bây giờ coi như bạn đang bắt đầu chỉnh sửa mã dưới localhost và phần tiếp theo chúng ta sẽ tiến hành push và triển khai lên trang web chính.

Bước 3. Triển khai từ localhost sang dàn

Điều này rất dễ dàng, bất cứ khi nào bạn commit từ localhost và push, dữ liệu sẽ được tự động áp dụng cho staging site ngay lập tức, vì git của localhost đang được kết nối với kho của staging site như ở bước 1.

Ví dụ, khi tôi đã hoàn tất việc chỉnh sửa mã trên localhost và muốn đưa nó vào dàn cho người khác xem, tôi cam kết như sau:

git add .
git commit -m "Them tinh nang ACB"
git push -u origin master

Bước 4. Triển khai từ dàn đến nơi sản xuất

Sau khi mã của bạn chạy tốt trên trang web dàn dựng, thì bạn chắc chắn sẽ muốn di chuyển các phần đã chỉnh sửa của mã nguồn vào thư mục trang web sản xuất. Trong hướng dẫn này, tôi sẽ làm điều đó với điều kiện trang web dàn dựng và trang web sản xuất nằm trên cùng một máy chủ sử dụng cPanel.

Bây giờ trong localhost, bạn tạo một tệp có tên .cpanel.yml với nội dung sau:

 ---
deployment:
  tasks:
    - export DEPLOYPATH=/home/azdigiweb/public_html/
    - /bin/cp -rf wp-content/plugins/ $DEPLOYPATH/wp-content
    - /bin/cp -rf wp-content/themes/ $DEPLOYPATH/wp-content

Trong đó, bạn thay thế /home/azdigiweb/public_html/ đến đường dẫn đến thư mục trang web chính (trang web sản xuất).

Bên dưới có hai lệnh sẽ sao chép hai thư mục wp-content/plugins/wp-content/themes trên git (của thư mục hiện tại chứa tệp .cpanel.yml đặt) vào thư mục trang web chính mỗi khi chúng tôi triển khai.

Thông thường khi lập trình code hoặc theme, chỉ cần triển khai hai thư mục này là đủ. Bạn có thể thêm nhiều lệnh nếu muốn.

Sau đó, gửi tệp này đến trang web dàn dựng bằng cách cam kết và đẩy các thay đổi mà chúng tôi vừa thực hiện:

git add .
git commit -m "Added .cpanel.yml file"
git push -u origin master

Khi đẩy thành công, bạn mở lại giao diện cPanel => Phiên bản điều khiển Git ™ => Quản lý => Kéo hoặc Triển khaibạn kiểm tra phần HEAD Cam kết là cam kết mới nhất mà git trên cPanel đang kiểm tra. Hay nói một cách dễ hiểu hơn, nếu bạn triển khai từ git đến nơi sản xuất, nó sẽ thực hiện các thay đổi của cam kết này.

Tạo Staging cho WordPress Website trên cPanel 28

Và ở đây nếu bạn muốn triển khai cam kết này vào thư mục trang sản xuất, chỉ cần nhấn nút Triển khai Cam kết HEAD. Khi nhấn nút này, nó sẽ thực hiện các lệnh bạn đã khai báo trong tệp .cpanel.yml mà bạn vừa tạo trước đó và trong tệp đó tôi có 2 lệnh để sao chép thư mục wp-content/themeswp-content/plugins qua nơi sản xuất nên bây giờ bạn có thể thử kiểm tra lại.

Vậy triển khai cơ sở dữ liệu thì sao?

Trong bài viết này, mình sử dụng tính năng Git ™ Version Control có sẵn trên host sử dụng cPanel nên sẽ không thể triển khai cơ sở dữ liệu từ localhost lên site chính theo quy trình trong bài mà sẽ sử dụng phương pháp khác.

Nếu bạn đang sử dụng macOS thì bạn có thể sử dụng kết hợp WordMove và VVV – Vagrant để tạo môi trường trang web cục bộ và đồng bộ hóa các thay đổi đối với trang web dàn dựng, sau đó kết hợp với git để đồng bộ hóa từ trang web sang trang web sản xuất.

Hoặc nếu bạn cảm thấy quá phức tạp nhưng cần phải làm việc thông qua quá trình này, bạn có thể sử dụng một plugin như WP Migrate Pro hoặc WP Stage Coach để tạo một dàn cơ sở dữ liệu hỗ trợ.

Phần kết

Cũng lâu rồi mình chưa viết bài nên nếu có chỗ nào hơi phân vân mong các bạn góp ý.

Về tầm quan trọng của một hệ thống môi trường làm việc như thế này, nếu bạn nhìn vào đây, bạn sẽ hiểu. Thực tế bạn có thể thấy có rất nhiều hệ thống website lớn khi cập nhật giao diện mới, tính năng mới thì chắc chắn phải mất nhiều thời gian để hoàn thiện nhưng hầu như không có bất kỳ sự gián đoạn hay ảnh hưởng nào đến người dùng. ; nếu vậy, chỉ một vài phút. Đó là nhờ sự kết hợp của những môi trường làm việc như thế này, mọi thứ chỉ được đưa lên trang web chính khi nó được hoàn thiện để đảm bảo ít sai sót và lỗi nhất.

Một thủ thuật khác là bạn có thể tạo git hoặc staging cho mỗi thư mục plugin / theme trong trang web WordPress của mình vì đôi khi bạn không cần sao chép trang web đang chạy chính để thực hiện việc này nếu bạn làm việc với người ngoài. nhưng cần đảm bảo cơ sở dữ liệu không rơi vào tay kẻ xấu.

Khi có nhiều thời gian hơn, tôi sẽ nói thêm về một số cách khác để tạo dàn máy đơn giản hơn với quy trình làm việc sạch hơn, nhưng chắc chắn sẽ có chi phí ?.

Chúc may mắn ?.

3.8 / 5 – (16 phiếu bầu)