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

Google Drive as Filesystem in Laravel

Google Drive as Filesystem in Laravel

Đối với một số dự án, bạn cần phải sử dụng Google Drive (với tài khoản @gmail.com cá nhân hoặc tài khoản G Suite) làm nhà cung cấp bộ nhớ trong các dự án Laravel. Trong bài đăng này, tôi sẽ hướng d...

Document Laravel API With OpenAPI (Swagger)

Document Laravel API With OpenAPI (Swagger)

Swagger là gì? Swagger là một Ngôn ngữ mô tả giao diện để mô tả các API RESTful được thể hiện bằng JSON. Swagger được sử dụng cùng với một bộ công cụ phần mềm mã nguồn mở để thiết kế, xây dựng, l...

T SQL - Cấu trúc CASE

T SQL - Cấu trúc CASE

Biểu thức CASE là một biểu thức điều kiện được áp dụng bên trong một biểu thức khác. CASE trả về các giá trị khác nhau tùy thuộc vào điều kiện.

Laravel Scout Full Text Search With Meilisearch

Laravel Scout Full Text Search With Meilisearch

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

ManhDanBlogs