Tạo script Auto Site Setup cho VVV

9 Tháng Ba, 2016

Bài này thuộc phần 4 của 5 phần trong serie Vagrant và VVV toàn tập

Auto Site Setup của VVV là một trong những tính năng đặc trưng của nó dẫn đến nhiều lập trình viên rất thích sử dụng. Nói một cách dễ hiểu, nó sẽ giúp bạn tự cấu hình một kịch bản bằng Bash Script để cài đặt website theo ý muốn của mình. Do VVV được thiết kế đặc thù cho WordPress cộng thêm việc kết hợp với WP-CLI nên bạn có thể làm rất nhiều việc với tính năng này.

Chẳng hạn bạn muốn tạo ra một script riêng cho mình để cài một website WordPress được thiết lập riêng dành cho bạn như cài sẵn theme nào, cài sẵn plugin nào, thêm dữ liệu mẫu, nhập dữ liệu database,….hầu như bạn có thể làm mọi thứ, chỉ là bạn có biết hay không mà thôi.

Trong bài viết này mình sẽ hướng dẫn cách tạo ra một Auto Site Setup script cho VVV, và mình sẽ lấy ví dụ là cài một website WordPress sử dụng WooCommerce và có thêm dữ liệu mẫu cho WooCommerce.

Bước 1. Khai báo thư mục trong /vvv/www

Trước tiên bạn sẽ cần truy cập vào thư mục /vvv-tut/www tạo ra một thư mục tên bất kỳ, ở đây mình đặt tên là woocommerce-test.

Tạo thư mục woocommerce-test

Tạo thư mục woocommerce-test

Tiếp tục tại thư mục vừa tạo, bạn tạo thêm 3 tập tin như sau:

  • vvv-hosts: Khai báo tên miền tự động thêm vào tập tin hosts.
  • vvv-nginx.conf: Khai báo cấu hình NGINX tự động thêm tên miền.
  • vvv-init.sh: Bash Script cho quá trình cài đặt.

vvv-auto-site-setup-1

Bước 2. Sửa tập tin vvv-hosts

Ở tập tin này bạn chỉ cần đơn giản là khai báo tên miền mà bạn muốn nó tự động thêm vào tập tin hosts.

woocommerce-test.dev

Bước 3. Sửa tập tin vvv-nginx.conf

Tập tin này sẽ chứa một đoạn thiết lập tên miền mới trong NGINX giống như cách chúng ta đã thêm tên miền vào VVV mà mình đã trình bày các bài viết trước.

 server { listen 80; server_name woocommerce-test.dev;  # The { vvv_path_to_folder}  token gets replaced # with the folder containing this, e.g. if this  # folder is /srv/www/foo/ and you have a root  # value of `{ vvv_path_to_folder} /htdocs` this # will be auto-magically transformed to  # `/srv/www/foo/htdocs`.  root { vvv_path_to_folder} ;  include /etc/nginx/nginx-wp-common.conf; } 

Lưu ý, phần {
vvv_path_to_folder}
nó sẽ tượng trưng cho đường dẫn thư mục hiện tại mà tập tin này đang được lưu, tức là thư mục /vvv/www/woocommerce-test và bạn nên để nguyên nó. Phần còn lại là sửa lại server_name thành tên miền bạn cần thêm.

Bước 4. Sửa tập tin vvv-init.sh

PS: Hãy tự gõ lại 100% vì copy và paste có thể sẽ gây lỗi cú pháp.

 # Welcome echo "Dang cai dat WooCommerce Test" # Tao database mysql -u root -proot -e "CREATE DATABASE IF NOT EXISTS woocommerce_test" mysql -u root -proot -e "GRANT ALL PRIVILEGES ON woocommerce_test .* TO [email protected] IDENTIFIED BY 'wp';" # Download WordPress echo "Download phien ban WordPress moi nhat" svn checkout http://svn.automattic.com/wordpress/trunk/ .  # Config wp core config --allow-root --dbname="woocommerce_test" --dbuser=wp --dbpass=wp --dbhost="localhost" wp core install --allow-root --url=woocommerce-test.dev --title="Woocommerce Test" --admin_user=admin --admin_password=password [email protected]  # Cai dat plugin wp plugin install wordpress-importer --allow-root --activate  wp plugin install woocommerce --allow-root --activate  # Import du lieu mau echo "Dang nap du lieu mau" wp import wp-content/plugins/woocommerce/dummy-data/dummy-data.xml --allow-root --authors=create  # Ket thuc echo "Ket thuc cai dat WooCommerce"

Bạn chịu khó đọc kỹ các comment của mình trong đó nhé.

Bây giờ hãy lưu lại và gõ lệnh vagrant provision để tái tạo lại và setup cái script của bạn đã khai báo.

Nếu nó chạy xong mà không gặp lỗi gì như bên dưới thì nó đã cài xong rồi.

vvv-auto-site-setup-2

Bây giờ bạn có thể thử truy cập vào website woocommerce-test.dev để xem thành quả nhé. Nếu vào mà không được thì kiểm tra lại kết quả output của lệnh vagrant provision xem có lỗi nào không, và kiểm tra tập tin hosts ở máy tính đã được khai báo tên miền woocommerce-test.dev chưa.

Tái sử dụng

Nếu bạn lưu lại thư mục chứa script tự cài đặt của mình lại và gửi cho bạn bè, hoặc tái sử dụng sau này thì chỉ cần copy nó vào thư mục /vvv/www rồi chạy lệnh vagrant provision là được.

Thế bạn đã thấy chức năng này tiện lợi chưa nào? Nhưng nó có vẻ hơi rườm rà đúng không? và quan trọng là nó không hoạt động tốt ở Windows, nhưng không sao, ở bài sau mình sẽ hướng dẫn bạn thêm một công cụ khác dùng kèm với VVV để tạo website WordPress nhanh chóng trên máy ảo.