Thiết lập môi trường phát triển WordPress cục bộ với Vagrant

theanh

Administrator
Nhân viên
Nếu bạn phát triển bằng WordPress, tốt hơn hết là thiết lập một môi trường cục bộ nơi bạn đã cài đặt máy chủ, công cụ cơ sở dữ liệu và một vài trang Wordpress cùng với các công cụ khác mà bạn cần. Điều này ổn nếu bạn chỉ làm việc trên một vài dự án. Nhưng khi chúng nhân lên, các vấn đề sẽ xảy ra. Và cả những cơn đau đầu khi phải duy trì nhiều môi trường, vì máy khách có thiết lập khác với bạn.

Để giải quyết vấn đề này, chúng ta có thể sử dụng cái mà chúng tôi gọi là Vagrant.Vagrant là một công cụ để làm việc với các môi trường ảo. Nó cung cấp một cách dễ dàng để thiết lập một môi trường phát triển cục bộ chỉ bằng một vài lệnh và bạn có thể sao chép toàn bộ thiết lập nhiều lần tùy thích, dễ dàng và không phải mất công cài đặt mọi thứ theo cách thủ công. Để chạy Vagrant, bạn cần xác định một tập hợp các quy tắc. Vagrant thiết lập máy ảo của bạn dựa trên các quy tắc này. Vagrant cần hai tệp cho việc này: Vagrantfile, tệp này cho Vagrant biết loại phần cứng nào mà máy ảo cần và tệp triển khai, tệp này cho Vagrant biết phải làm gì trên máy ảo.

Vì Vagrant hoạt động với môi trường ảo nên bạn cần phần mềm máy ảo để chạy Vagrant. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụng Virtualbox Nguồn mở.

Cài đặt VirtualBox​

Truy cập trang tải xuống Virtualbox và tải xuống tệp nhị phân tương ứng với máy chủ Khách của bạn. (Máy chủ khách là Hệ điều hành mà bạn sẽ chạy môi trường phát triển của mình.) Cài đặt Virtualbox.

Cài đặt Vagrant​

Tải xuống tệp nhị phân tương ứng với hệ điều hành của bạn từTrang tải xuống của Vagrant và cài đặt.

Để kiểm tra xem nó đã được cài đặt thành công hay chưa, hãy nhập lệnh sau vào dòng lệnh của hệ điều hành của bạn.
Mã:
$ vagrant -v

Cài đặt Plugin Cập nhật Máy chủ Vagrant​

Pluginvagrant-hostupdater sẽ sửa đổi tệp máy chủ của hệ điều hành của bạn để các miền được thiết lập bởi Vagrant hoạt động. Để cài đặt, hãy chạy lệnh sau
Mã:
$ vagrant plugin install vagrant-hostsupdater
Khởi động lại hệ điều hành của bạn sau khi cài đặt Vagrant/Virtualbox để không có sự cố mạng nào xảy ra.

Cài đặt Git​

Linux​

Chúng ta cũng sẽ cần kiểm soát phiên bản Git cho hướng dẫn này. Nếu bạn chưa cài đặt, hãy cài đặt bằng lệnh sau nếu bạn có bản phân phối Debian/Ubuntu
Mã:
$ sudo apt install git
hoặc nếu bạn có Fedora
Mã:
$ sudo dnf install git
hoặc nếu bạn có CentOS/RHEL
Mã:
$ sudo yum install git
Kiểm tra phiên bản Git đã cài đặt thông qua lệnh sau
Mã:
$ git --version
Bạn sẽ thấy nội dung tương tự như
Mã:
$ git version 2.20.1
Bạn cần thiết lập Git thông qua các lệnh sau.
Mã:
$ git config --global user.name "Tên của bạn" 
$ git config --global user.email "[emailprotected]"

Windows​

Để cài đặt Git trên Windows, hãy truy cậpTrang tải xuống Git và cài đặt tệp nhị phân.

Mac OS​

Nếu bạn đã cài homebrew, thì bạn có thể cài đặt Git thông qua lệnh sau.
Mã:
$ brew install git
hoặc bạn có thể tải xuống gói nhị phân từTrang tải xuống Git và cài đặt.

Cài đặt Vagrants Vagrants biến đổi​

Thay vì tạo thiết lập Vagrant từ đầu, chúng tôi sẽ sử dụngVarying Vagrants Vagrant(VVV) - một cấu hình Vagrant nguồn mở nhằm mục đích cụ thể là tạo Môi trường phát triển WordPress. Một VVV tiêu chuẩn sẽ thiết lập máy ảo của bạn dựa trên Ubuntu 18.04 cùng với máy chủ Nginx, cơ sở dữ liệu MariaDB, PHP, WP-CLI, Node.js, MailHog, Composer, memcached, phpMyAdmin, git và nhiều công cụ khác. VVV sẽ cung cấp cho bạn nhiều cài đặt WordPress theo mặc định, một trong số đó là phiên bản mới nhất giúp bạn thử nghiệm.

Bước đầu tiên là sao chép kho lưu trữ Git của VVV vào một thư mục cục bộ trên hệ thống của bạn.
Mã:
$ git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvv
Chúng tôi đang sao chép nhánh master của kho lưu trữ trên hệ thống. Nếu bạn muốn cập nhật nhanh hơn, bạn có thể sử dụng nhánh develop.

Khởi động VVV​

Chuyển đến thư mục mà bạn đã sao chép VVV.
Mã:
$ cd vvv
Khởi chạy môi trường Vagrant để cài đặt Máy ảo và thiết lập mọi thứ.
Mã:
$ vagrant up
Quá trình này có thể mất một lúc nên hãy kiên nhẫn. Bạn có thể được yêu cầu nhập mật khẩu gốc trong quá trình thiết lập tệp máy chủ của hệ thống.

Lưu ý dành cho Người dùng Windows 8/10​

Nếu bạn đang sử dụng Windows, bạn có thể gặp lỗi sau

Mã:
==> default: Đang khởi động VM... 
Đã xảy ra lỗi khi thực thi `VBoxManage`, một CLI được Vagrant sử dụng 
để điều khiển VirtualBox. Lệnh và stderr được hiển thị bên dưới. 
 
Lệnh: ["startvm", "1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6", "--type", "headless"] 
 
Stderr: VBoxManage.exe: lỗi: Không mở/tạo được mạng nội bộ 'HostInterfaceNetworking-VirtualBox Host-Only 
Ethernet Adapter #3' (VERR_INTNET_FLT_IF_NOT_FOUND). 
VBoxManage.exe: lỗi: Không thể đính kèm LUN mạng (VERR_INTNET_FLT_IF_NOT_FOUND) 
VBoxManage.exe: lỗi: Chi tiết: mã E_FAIL (0x80004005), thành phần ConsoleWrap, giao diện IConsole
Lưu ý Bộ điều hợp được tham chiếu ở đây:
Mã:
Bộ điều hợp Ethernet chỉ dành cho máy chủ VirtualBox #3
Mở Bảng điều khiển >> Trung tâm mạng và chia sẻ. Bây giờ hãy nhấp vào Thay đổi cài đặt bộ điều hợp. Nhấp chuột phải vào bộ điều hợp có Tên hoặc Tên thiết bị khớp với Bộ điều hợp Ethernet chỉ dành cho máy chủ VirtualBox # 3 và nhấp vào Thuộc tính. Nhấp vào nút Cấu hình.

Bây giờ hãy nhấp vào tab Trình điều khiển. Nhấp vào Cập nhật trình điều khiển. Chọn Duyệt máy tính của tôi để tìm trình điều khiển. Bây giờ hãy chọn Let me pick from a list of available drivers on my computer. Chọn tùy chọn bạn nhận được và nhấp vào Next. Nhấp vào Close để hoàn tất quá trình cập nhật. Bây giờ hãy quay lại cửa sổ Terminal/Powershell/Command và lặp lại lệnh vagrant up. Lần này nó sẽ hoạt động tốt.

Sau khi hoàn tất, bạn có thể truy cập bảng điều khiển VVV của mình tại http://vvv.test url.

VVV đi kèm với hai cài đặt WordPress mặc định - http://one.wordpress.testhttp://two.wordpress.test Cả hai trang web đều có thông tin đăng nhập giống nhau, admin là tên người dùng và password là mật khẩu. Thông tin xác thực cơ sở dữ liệu cho cả hai trang web là wp là tên người dùng và mật khẩu. Thông tin đăng nhập người dùng MySQL Root là root làm tên người dùng và mật khẩu. Và thông tin đăng nhập người dùng root của VM là root làm tên người dùng và vagrant làm mật khẩu.

Có một bản cài đặt wordpress dành cho nhà phát triển tại http://trunk.wordpress.net nhưng nó sẽ không hoạt động vì nó không được cung cấp. Bản cài đặt này hữu ích nếu bạn là người đóng góp cho WordPress làm việc với các bản vá và phiếu Trac. Để bật nó, hãy mở vvv-custom.yml và thay đổi giá trị của skip_provisioning trong wordpress-trunk thành false rồi cung cấp lại VM bằng lệnh
Mã:
$ vagrant reload --provision
Có một bản cài đặt wordpress khác không có url được gắn nhãn là wordpress-meta-environment. Cài đặt này sẽ tạo ra một môi trường hữu ích cho các đóng góp cho nhóm meta WordPress, ví dụ: WordCamps, .org, v.v. Để bật cài đặt này, hãy thêm dòng sau vào wordpress-meta-environment trong tệp vvv-custom.yml.
Mã:
hosts:
 - [URL=http://wpmeta.test?utm_source=diendancongnghe.com]wpmeta.test[/URL]
Sau đó, thay đổi giá trị của skip_provisioning thành false và cung cấp lại VM.
Mã:
$ vagrant reload --provision

Thêm một Site mới​

Nếu bạn muốn thêm một site khác vào VM, bạn sẽ cần chỉnh sửa tệp vvv-custom.yml mà bạn có thể tìm thấy trong thư mục vvv. Nếu không có, chỉ cần sao chép vvv-config.yml và tạo nó. Đây là quy trình một lần và bạn sẽ không cần phải thực hiện lại. Luôn thực hiện thay đổi của bạn trong vvv-custom.ymlvvv-config.yml sẽ bị ghi đè khi bạn cập nhật VVV.

Thêm mã sau vào phần trang web trong vvv-custom.yml để thêm trang web mới.
Mã:
newsite: repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template description: "Cài đặt nhiều trang web WordPress subdir"
 vm_dir: /srv/www/newsite
 local_dir: /home/user/vvv/www/newsite
 branch: master
 nginx_upstream: php skip_provisioning: false hosts: - newsite.test custom: wp_type: subdirectory

Biến​

biến repo đề cập đến kho lưu trữ Github được xác định trước chứa thông tin về cách thiết lập trang web WordPress mới trên VM. Hiện tại, chúng tôi đang sử dụng kho lưu trữ do VVV duy trì.

biến mô tả tự giải thích.

vm_dir là thư mục thực tế bên trong VM nơi trang web của bạn sẽ lưu trú.

local_dir là thư mục trên máy chủ lưu trữ nơi trang web của bạn lưu trú.

biến nhánh yêu cầu Vagrant kiểm tra nhánh chính của kho lưu trữ trong ví dụ ở đây.

nginx_upstream được sử dụng để thiết lập nơi Nginx chuyển yêu cầu đến và thường được sử dụng để thay đổi phiên bản PHP cần thiết cho cài đặt của bạn. php ở đây đề cập đến phiên bản PHP mặc định là 7.2. Bạn có thể sử dụng php71 để thay đổi thành PHP 7.1 hoặc php56 để thay đổi thành PHP 5.6.

skip_provisioning được đặt thành false, nghĩa là chúng ta cần đưa trang web này vào VM.

biến hosts được sử dụng để đặt url mà chúng ta sẽ cần để truy cập trang web.

phần custom hữu ích nếu bạn cần thêm quyền kiểm soát đối với trang web WordPress của mình. Bạn có thể sử dụng phần này để thiết lập cài đặt nhiều trang web hoặc cài đặt phiên bản WordPress khác và thậm chí thay đổi tên cơ sở dữ liệu hoặc trang web sẽ được sử dụng để cài đặt.

biến wp_type quyết định xem cài đặt của bạn sẽ là một trang web đơn, nhiều trang web có tên miền hay nhiều trang web có thư mục con. wp_type có bốn giá trị: đơn, tên miền phụ, thư mục con và không có. Với cài đặt subdomain, bạn có thể định nghĩa nhiều máy chủ cho cài đặt multisite của mình theo định dạng sau
Mã:
hosts: - multisite.test - site1.multisite.test - site2.multisite.test custom: wp_type: subdomain
Bạn có thể thêm một biến nữa trong phần tùy chỉnh là wp_version. Bạn có thể đặt thành nightly nếu muốn cài đặt phiên bản Nightly của WordPress. Nó có ba giá trị: nightly, latest và một số phiên bản.
Mã:
custom: wp_version: nightly
Có một biến khác, db_name cho phép bạn đặt tên cơ sở dữ liệu cho cài đặt của mình.
Mã:
custom: db_name: super_secet_db_name
Và cuối cùng, biến site_title cho phép bạn đặt Tiêu đề cho trang web WP của mình.
Mã:
custom: site_title: My Awesome Dev Site
Điều này sẽ bao gồm tất cả các biến và tùy chọn bạn cần để thêm trang web của riêng mình vào VVV. Sau khi thay đổi tệp vvv-custom.yml, chỉ cần chạy lệnh sau để trang web mới của bạn hoạt động.
Mã:
$ vagrant reload --provision

Thêm trang web hiện có​

Cho đến nay, chúng ta đã học cách thêm một trang web hoàn toàn mới vào VVV. Nhưng nếu bạn đang làm việc trên một trang web và muốn thêm nó vào VVV thì sao. Hãy cùng xem chúng ta có thể làm điều đó như thế nào.

Để thêm một trang web hiện có, bước đầu tiên giống như trước, tức là chỉnh sửa tệp vvv-custom.yml và thêm mã sau.
Mã:
howtoforge: repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template description: "Một trang web WordPress"
 vm_dir: /srv/www/newsite
 local_dir: /home/user/vvv/www/newsite
 hosts: - howtoforge.local
Điều này sẽ yêu cầu VVV thiết lập một trang web mới có thể truy cập qua Nhưng đó là một trang web hoàn toàn mới. Những gì chúng ta cần làm là chuyển đổi nó thành bản cài đặt hiện có của chúng ta. Để thực hiện việc này, chúng ta cần sao chép các tệp từ cài đặt WordPress hiện tại sang thư mục cục bộ, tức là /home/user/vvv/www/newsite
Mã:
$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/
Bây giờ chúng ta cần sao chép cơ sở dữ liệu. Một cách đơn giản để thực hiện là xuất cơ sở dữ liệu hiện tại của bạn dưới dạng tệp .sql, sao chép tệp đó sang thư mục blog của chúng ta và nhập lại cơ sở dữ liệu bằng cách SSH vào VM của chúng ta.

Trước tiên, hãy đăng nhập vào mysql trong dòng lệnh của hệ thống cục bộ của bạn và sử dụng lệnh sau để xuất cơ sở dữ liệu.
Mã:
$ cd /home/user/vvv/www/newsite$ mysqldump -u username -p database_name > data-dump.sql
Bây giờ chúng ta có thể cung cấp lại VM.
Mã:
$ vagrant reload --provision
SSH vào VM của bạn.
Mã:
$ vagrant ssh
Bây giờ hãy nhập cơ sở dữ liệu trở lại VM của bạn.
Mã:
$ cd /srv/www/newsite$ mysql -u root -p newsite < data-dump.sql
VVV đã tạo một cơ sở dữ liệu mới trong quá trình cung cấp cho blog của chúng tôi có tên là newsite. Mật khẩu cho người dùng root ở đây là root. Lệnh trên sẽ nhập cơ sở dữ liệu hiện tại của chúng tôi vào cơ sở dữ liệu mới.

Điều này hoàn tất quá trình thiết lập một trang web hiện có trong VVV.

Bật SSL​

Cài đặt Localhost thường không được bảo mật. Và việc cài đặt chứng chỉ của riêng bạn trên localhost có thể là một quá trình dài và tẻ nhạt, ngay cả với Let's Encrypt. Nhưng VVV làm cho quá trình này khá dễ dàng và theo mặc định đã bật SSL trên tất cả các cài đặt WordPress của bạn. Chỉ cần bắt đầu sử dụng https với các trang web của bạn. Lần đầu tiên, trình duyệt của bạn sẽ báo lỗi về chứng chỉ không hợp lệ nhưng hãy thêm nó làm ngoại lệ và từ giờ trở đi mọi thứ sẽ ổn.

Cập nhật WordPress​

Bạn có thể cập nhật cài đặt WordPress của mình từ bảng điều khiển. Ngoài ra, VVV sẽ cập nhật WordPress của bạn bất cứ khi nào bạn cung cấp lại VM. Bạn cũng có thể cập nhật WordPress theo cách thủ công bằng cách tải xuống từ WordPress.org và giải nén tệp zip. Và bạn cũng có thể sử dụng WP CLI được đóng gói cùng với VVV. Để cập nhật trang web của bạn bằng WP CLI, hãy sử dụng các lệnh sau.
Mã:
$ cd /srv/www/newsite$ wp core update

Đang cập nhật VVV​

Bước đầu tiên là dừng máy Vagrant.
Mã:
$ vagrant halt
Bây giờ hãy đảm bảo rằng vagrant và Virtualbox của bạn đã được cập nhật. Nếu chưa, hãy tải xuống lại và cài đặt.

Chạy lệnh sau để cập nhật hộp Vagrant của bạn. Tùy chọn này là tùy chọn nhưng tốt nhất là bạn nên thực hiện.
Mã:
$ vagrant box update
Bây giờ, hãy kéo phiên bản VVV mới nhất từ Github.
Mã:
$ git pull
Cung cấp lại hộp một lần nữa để hoàn tất quá trình cập nhật.
Mã:
$ vagrant up --provision

Công cụ bổ sung​

VVV đi kèm với nhiều tiện ích khác nhau mà bạn có thể cài đặt. Bạn sẽ tìm thấy chúng được liệt kê trong phần tiện ích trong tệp vvv-custom.yml của mình. Theo mặc định, tls-ca và phpmyadmin được bật. Bạn có thể cài đặt thêm memcached, opcache, webgrind, mongodb, tideways và các phiên bản php từ 5.6 đến 7.3 bằng cách xóa # ở phía trước chúng trong phần tiện ích.

Bạn thậm chí có thể thêm phần mềm của riêng mình mà bạn muốn cài đặt. Bạn sẽ cần sửa đổi tệp vvv-custom.yml bằng lệnh tương tự như
Mã:
utilities: core: - tls-ca
 - phpmyadmin java: - java7utility-sources: java: repo: https://github.com/example/java-utilities.git branch: master
Bạn sẽ thêm một phần mới, ví dụ như java ở đây. Mã để cài đặt sẽ đến từ kho lưu trữ git. Kho lưu trữ git của bạn phải có cấu trúc tương tự như
Mã:
java7/ provision.sh
Tệp provision.sh sẽ chứa mã cần thiết để cài đặt java trong VM của bạn. Tên của thư mục phải khớp với tên bạn đã sử dụng ở trên trong tệp vvv-custom.yml.

Kết luận​

Như vậy là kết thúc hướng dẫn của chúng tôi về cách thiết lập môi trường phát triển WordPress cục bộ với Vagrant. Hãy cho chúng tôi biết nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên