Hiện nay, chúng ta khi phát triển hệ thống website luôn thao tác mọi thứ trên Linux, Nếu bạn bạn là lập trình viên PHP thì sẽ càng có lợi hơn khi sử dụng Linux, Ngoài ra trong một số trường hợp, bạn muốn tạo một máy chủ ảo Linux riêng để phục vụ cho việc học chẳng hạn, mà bạn lại không muốn mất tiền mua VPS hoặc bạn không muốn chuyển máy tính bạn qua hệ điều hành Linux vì bạn sợ có thể bạn không quen đến hệ điều hành Linux nhiều. Vậy thì chúng ta sẽ tạo môi trường Linux trên chính máy Windowns của bạn.

Trong bài viết này, mình sẽ giới thiệu bạn đến một công cụ khác và bạn có thể sử dụng kèm theo VirtualBox để tạo ra môi trường Linux một cách nhanh chóng, đơn giản nhất và chuyên nghiệp đó là công cụ Vagrant.

Để bắt đầu tiến hành dựng môi trường Linux, bạn cần phải cài đặt git trước khi bắt đầu nha

http://git-scm.com/download/win

Cài đặt VirtualBOX

Đầu tiên, bạn cần phải tải file cài đặt VirtualBox bằng đường link dưới đây

https://download.virtualbox.org/virtualbox/6.1.26/VirtualBox-6.1.26-145957-Win.exe

Sau đó, bạn tạo thư mục VirtualBox theo đường dẫn như sau

D:\VirtualBox

Tiếp theo, bạn chỉ cần cài đặt VirtualBox theo đường dẫn trên. Vậy là chúng ta đã cài đặt xong phần VirtualBox rồi.

Cài đặt Vagrant

Đầu tiên, bạn cũng cần phải tải file cài đặt Vagrant bằng đường link dưới đây

https://releases.hashicorp.com/vagrant/2.2.18/vagrant_2.2.18_x86_64.msi

Sau đó, bạn tạo thư mục Vagrant theo đường dẫn như sau

D:\Vagrant

Tiếp theo, bạn chỉ cần cài đặt Vagrant theo đường dẫn trên. Sau khi cài đặt, bạn tạo thêm một số thư mục theo đường dẫn bên dưới

D:\Vagrant\project
D:\Vagrant\.vagrant.d

Cấu hình VAGRANT_HOME

1. Mở Windows Control Panel

2. Chọn User Accounts, sau đó chọn User Accounts

3. Chọn Change my environment variables

4. Chọn New...

Tạo môi trường Linux

Đầu tiên, bạn tạo thư mục main theo đường dẫn bên dưới

D:\Vagrant\project\main

Tiếp theo, trong folder trên bạn mở git bash và chạy lệnh sau

truncate Vagrantfile -s 0

Sau đó, bạn copy nôi dung sau vào file Vagrantfile

Vagrant.configure(2) do |config|
  config.vm.box = "centos/8"
  config.ssh.insert_key = false
  config.vm.synced_folder '.', '/vagrant', disabled: true

  config.vm.define "vm1", autostart: false do |cf|
    cf.vm.hostname = "manhdan-10-11-12-2"
    cf.vm.network "public_network", ip: "10.11.12.2", netmask: "255.255.240.0", gateway: "10.11.0.1"
    cf.vm.provider "virtualbox" do |vb|
      vb.name = "template"
      vb.customize ["modifyvm", :id, "--memory", "512", "--cpus", "1" ,"--ioapic", "on"]
    end
  end
  #config.vm.provision "shell", inline: <<-SHELL
  #  mount /dev/sdc1 /data/
  #  service smb restart
  #SHELL
end

Tiếp theo, bạn mở git bash và chạy lệnh sau

vagrant up vm1 --provision

Tiếp theo, bạn kết nối vào máy ảo bằng lệnh sau

vagrant ssh vm1

Tiếp theo, bạn cài đặt trình soạn thảo vim

sudo su
dnf install vim

Chỉnh sửa ssh config

vim /etc/ssh/sshd_config
Thay đổi PasswordAuthentication no thành PasswordAuthentication yes
systemctl restart sshd
exit

Bây giờ bạn có thể SSH với user `root` và password `vagrant`. Cuối cùng là bạn cần tắt selinux

vim /etc/selinux/config
Thay đổi SELINUX=enforcing thành SELINUX=disabled

Các command line thường sử dụng

- Thêm box
vagrant box add name_box path_box
- Hiển thị danh sách các box
vagrant box list
- Xóa box
vagrant box remove name_box
- Tạm dừng box
vagrant halt
- Khởi động lại box
vagrant reload --provision
- Xóa vagrant
vagrant destroy --fore
- Đăng nhập vào máy ảo
vagrant ssh
- Khởi động vagrant
vagrant up --provision

Tôi hy vọng bạn thích hướng dẫn này. Nếu bạn có bất kỳ câu hỏi nào hãy liên hệ với chúng tôi qua trang contact. Cảm ơn bạn.

CÓ THỂ BẠN QUAN TÂM

Laravel Facades

Laravel Facades

Facade là gì? Chúng ta có thể hiểu Facade là mặt tiền và mặt trước của một tòa nhà hay bất cứ thứ gì. Tầm quan trọng của Facade là chúng có thể dễ nhận thấy và nổi bật hơn, tương tự như vậy, thì...

How to insert into a database at lightning speed?

How to insert into a database at lightning speed?

Trong quá trình thực hiện dự án cho công ty, một trong những yêu cầu đặt ra là import dữ liệu từ file CSV (chứa dữ liệu từ hệ thống cũ) vào cơ sở dữ liệu MySQL của hệ thống mới. Do sự thay đổi cấu...

Laravel Many to Many Polymorphic Relationship

Laravel Many to Many Polymorphic Relationship

Many to many Polymorphic Relationship cũng hơi phức tạp để hiểu. Ví dụ: nếu bạn có bài post, video và tag, bạn cần kết nối với nhau theo yêu cầu là mọi bài đăng đều có nhiều tag và video cũng như vậy....

Integrating OpenAI in Laravel

Integrating OpenAI in Laravel

OpenAI OpenAI là một phòng thí nghiệm nghiên cứu trí tuệ nhân tạo (AI) của Mỹ bao gồm tổ chức phi lợi nhuận OpenAI Incorporated (OpenAI Inc.) và công ty con hoạt động vì lợi nhuận OpenAI Limited Par...

ManhDanBlogs