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

Fast Paginate in Laravel

Fast Paginate in Laravel

Laravel Fast Paginate là gì? Laravel Fast Paginate là một macro nhanh về phân trang offset/limit cho Laravel. Nó được sử dụng để thay thể paginate trong Laravel.Package này sử dụng phương pháp SQL t...

Laravel Artisan Console

Laravel Artisan Console

Ngoài các lệnh command mặc định của Laravel được cung cấp bởi Artisan, có rất nhiều tác vụ trong ứng dụng Laravel của bạn có thể được xử lý rất tốt bằng các lệnh command này. Nhưng đôi khi có nhiều tá...

Laravel  Scout Full Text Search with Algolia

Laravel Scout Full Text Search with Algolia

Laravel Scout cung cấp một giải pháp đơn giản, dựa trên trình điều khiển để thêm tìm kiếm Full Text vào các mô hình Eloquent của bạn. Khi sử dụng Eloquent, Scout sẽ tự động giữ chỉ mục tìm kiếm của bạ...

Laravel Mail Sending Redirector Listener

Laravel Mail Sending Redirector Listener

Trong quá trình phát triển web, việc gửi email là một chức năng quan trọng để thông báo, đặt lại mật khẩu, hoặc tương tác với người dùng. Tuy nhiên, khi chúng ta đang trong quá trình phát triển, vi...

ManhDanBlogs