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 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....

Laravel Task Scheduling

Laravel Task Scheduling

Trong các ứng dụng lớn, bạn cần lên lịch định kì cho các công việc bằng Cron jobs.  Tại số một số thời điểm, việc quản lý các cron jobs trở nên cồng kềnh và khó khăn hơn. Laravel Scheduler là một côn...

SQL Server - Mệnh đề ORDER BY

SQL Server - Mệnh đề ORDER BY

Chức năng: sắp xếp theo thứ tự tăng dần hoặc giảm dần các dòng dữ liệu trong quan hệ, kết quả theo tiêu chí sắp xếp.

Laravel One to Many Polymorphic Relationship

Laravel One to Many Polymorphic Relationship

One to Many Polymorphic Model Relationship được sử dụng khi một model thuộc về nhiều model khác trên một model kết hợp duy nhất. Ví dụ: Nếu chúng ta có bảng post và video, cả hai đều cần thêm hệ thống...

ManhDanBlogs