Tìm kiếm bài viết

Laravel: Tìm hiểu về homestead (Phần 1)

01.09.2020

0/5 (0 Reviews)

Laravel: Tìm hiểu về homestead trong laravel (Bài 1).Lựa chọn này sẽ loại bỏ MySQL và cài đặt MariaDB.

    Giới thiệu homestead trong laravel 

    Laravel cố gắng làm cho toàn bộ các trải nghiệp phát triển PHP trở lên thú vị khi lập trình web, bao gồm cả môi trường phát triển local của bạn. cung cấp đơn giản, thoải mái để quản lý các máy ảo.

    Laravel Homestead là bản chính thức, Một bản đóng gói sẵn của Vagrant box cung cấp cho bạn một môi trường tuyệt vời mà bạn không phải cài PHP, web server hay bất cứ phần mền nào khác trên môi trường local của bạn. Không phải bận tâm về hệ điều hành của bạn là gì? Vagrant boxes đã có hoàn chỉnh mọi thứ. Nếu có lỗi gì bạn có thể hủy và tạo lại một box chỉ trong vài phút!

    Homestead có thể chạy trên Windowns, Mac hay Linux, nó bao gồm cả Nginx web server, PHP 7.1, MySQL, Postgres, Redis, Memcached, Node, và tất cả những thứ khác bạn cần để phải triển ứng dụng Laravel.

    Included Software trong laravel

    • Ubuntu 16.04
    • Git
    • PHP 7.1
    • Nginx
    • MySQL
    • MariaDB
    • Sqlite3
    • Postgres
    • Composer
    • Node (With Yarn, Bower, Grunt, and Gulp)
    • Redis
    • Memcached
    • Beanstalkd
    • Mailhog
    • ngrok

    Installation & Setup trong laravel

    Trước khi chạy môi trường Homestead của bạn, bạn cần phải cài đặt , hoặc cũng như . Tất cả những phần mền trên đều cung cấp giao diện người dùng và rất dễ cài đặt cho tất cả các hệ điều hành phổ biến.

    Để sử dụng nhà cung cấp VMware, bạn cần mua cả VMware Fusion / Workstation và . Dù không miễn phí, nhưng VMware có thể cung cấp hiệu năng truy cập thư mục chia sẻ nhanh hơn.

    Để sử dụng nhà cung cấp Parallels, bạn cần phải cài đặt . Nó là miễn phí.

    Installing The Homestead Vagrant Box

    Khiđã cài đặt VirtualBox / VMware and Vagrant, bạn cần thêm box laravel/homestead bằng cách sử dụng lệnh trên terminal. Bạn sẽ mất vài phú để tải nó, phụ thuộc vào tốc độ internet của bạn nhanh hay chậm:

    vagrant box add laravel/homestead
    

    Nếu dòng lệnh bị lỗi, hãy chắc chắn rằng Vagrant của bạn đã được cập nhật.

    Installing Homestead

    Bạn có thể cài Homestead bằng cách clone từ kho lưu trữ về. Hãy cân nhắc sao chép vào thư mục Homestead trong thư mục "home" của bạn, như vậy thì Homestead sẽ có thể hoạt động như host cho tất cả project Laravel của bạn:

    cd ~
    
    git clone https://github.com/laravel/homestead.git Homestead
    

    Bạn nên check out một tagged version của Homestead vì nhánh master không phải lúc nào cũng ổn định. Bạn có thể tìm thấy phiên bản ổn định mới nhất trên :

    cd Homestead
    
    // Clone the desired release...
    git checkout v6.1.0
    

    Khi bạn đã clone Homestead repository, hãy chạy lệnh bash init.sh từ thư mục Homestead để tạo file cấu hình Homestead.yaml. File Homestead.yaml sẽ được đặt trong thư mục Homestead:

    // Mac / Linux...
    bash init.sh
    
    // Windows...
    init.bat
    

    Configuring Homestead

    Setting Your Provider Từ khóa provider trong file Homestead.yaml chỉ ra Vagrant provider nào sẽ được sử dụng: virtualbox, vmware_fusion, vmware_workstation hay parallels. Bạn có thể thiết lập provider theo ý bạn:

    provider: virtualbox
    

    Configuring Shared Folders

    Thuộc tính folders trong file Homestead.yaml liệt kê tất cả các folder mà bạn muốn chia sẻ với môi trường Homestead. Nếu như file nào có trong folder này thay đổi, thì nó sẽ được đồng bộ giữa môi trường local của bạn và môi trường Homestead. Bạn có cấu hình nhiều folder chia sẻ nếu cần:

    folders:
        - map: ~/Code
          to: /home/vagrant/Code
    

    Để bật , bạn chỉ cần thêm một cờ đơn giản vào cấu hình chia sẻ folder của bạn:

    folders:
        - map: ~/Code
          to: /home/vagrant/Code
          type: "nfs"
    

    Bạn cũng có thể pass bất kỳ option nào được hỗ trợ bởi Vagrant's bằng cách liệt kê chúng trong option key:

    folders:
        - map: ~/Code
          to: /home/vagrant/Code
          type: "rsync"
          options:
              rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
              rsync__exclude: ["node_modules"]
    

    Configuring Nginx Sites

    Không thân thiện với Nginx? Không sao cả. Thuộc tính sites cho phép bạn dễ dàng map một "domain" đến một folder trong môi trường Homestead của bạn. Cấu hình site của bạn được include trong file Homestead.yaml. Một lần nữa, bạn có thể thêm nhiều trang vào môi trường Homestead của bạn nếu cần. Homestead có thể hoạt động thoải mái, ảo hóa thuận tiện cho mọi dự án Laravel bạn làm việc:

    sites:
        - map: homestead.app
          to: /home/vagrant/Code/Laravel/public
    

    Nếu bạn thay đổi thuộc tính sites sau khi cung cấp hộp Homestead, bạn cần phải chạy lại lệnh vagrant reload --provision để cập nhập lại cấu hình Nginx trên máy ảo.

    The Hosts File

    Bạn phải thêm "domain" cho Nginx sites vào file hosts trên máy của bạn. File hosts sẽ chuyển hướng request của bạn đến Homestead site sang máy chủ Homestead của bạn. Trên máy Mac và Linux, nó đặt ở /etc/hosts. Trên Windowns, nó đặt ở C:\Windows\System32\drivers\etc\hosts. Dòng bạn cần thêm vào file này sẽ có dạng bên dưới:

    192.168.10.10  homestead.app
    

    Bạn phải chắc chắn là địa chỉ IP được liệt kê là địa chỉ được đặt trong file Homestead.yaml. Sau khi bạn đã thêm tên miền vào file hosts và chạy hộp Vagrant, bạn sẽ có thể kết nối đến trong thông qua trình duyệt:

    http://homestead.app
    

    Launching The Vagrant Box

    Sau khi bạn chỉnh sửa Homestead.yaml theo ý bạn, chạy lệnh vagrant up từ trong thư mục Homestead. Vagrant sẽ khởi động máy ảo và tự động cấu hình folder chia sẻ và Nginx site.

    Để hủy máy ảo, bạn có thể sử dụng câu lệnh vagrant destroy --force.

    Per Project Installation

    Thay vì cài đặt Homestead một cách toàn cục và chia sẻ hộp Homestead giống nhau cho tất cả dự án, bạn có thể cấu hình từng Homestead cho từng dự án. Cài đặt Homestead cho tưng dự án có lợi ích nếu bạn muốn gửi kèm Vagrantfile với dự án của bạn, cho phép người khác làm việc trên dự án đơn giản bằng lệnh vagrant up.

    Để cài Homestead trực tiếp vào dự án của bạn, sử dụng Composer:

    composer require laravel/homestead --dev
    

    Sau khi Homestead được cài, sử dụng lệnh make để tạo file VagrantfileHomestead.yaml trong thư mục project gốc. Lệnh make sẽ tự động cấu hình sitesfolders vào file Homestead.yaml.

    Mac / Linux:

    php vendor/bin/homestead make
    

    Windows:

    vendor\\bin\\homestead make
    

    Tiếp theo, chạy lệnh vagrant up từ terminal và truy cập vào dự án tại http://homestead.app bằng trình duyệt. Nhớ rằng, bạn sẽ cần phải thêm homestead.app hoặc tên miền bạn chọn vào file /etc/hosts.

    Installing MariaDB

    Nếu bạn thích dùng MariaDB hơn MySQL, bạn có thể thêm tùy chọn mariadb vào file Homestead.yaml. Lựa chọn này sẽ loại bỏ MySQL và cài đặt MariaDB. MariaDB sẽ hoạt động thay cho MySQL vì vậy bạn cũng có thể dùng mysql database driver trong cấu hình cơ sở dữ liệu của bạn:

    box: laravel/homestead
    ip: "192.168.20.20"
    memory: 2048
    cpus: 4
    provider: virtualbox
    mariadb: true
    

    Chúc các bạn thành công

    CÓ THỂ BẠN QUAN TÂM

    Bài Viết Cùng Chuyên Mục

    XEM THÊM
    thumbnail

    Kubernetes bài 6 - Vận hành k8s Day-Two Operations và Quản trị bằng GitOps

    22.05.2026

    Khi cụm Kubernetes của bạn đã được bảo mật cấu hình, tối ưu tài nguyên và thiết lập tự phục hồi, câu hỏi đặt ra là làm sao để duy trì sự ổn định đó trong nhiều năm tiếp theo mà không bị phụ thuộc

    thumbnail

    Kubernetes bài 5 - bảo mật Cloud Native và chuẩn DevSecOps cho K8s

    22.05.2026

    Việc siết chặt an ninh (Hardening) không phải là cấu hình một vài thông số rồi bỏ đó, mà là một tư duy phòng thủ chiều sâu.

    thumbnail

    Kubernetes bài 4 - Tối ưu Resource Auto-Healing và Scale Zero-Downtime

    22.05.2026

    Bài viết này sẽ đi sâu vào các cơ chế ở tầng Kernel giúp hệ thống tự phục hồi, chống lại các đợt tấn công cạn kiệt tài nguyên và cập nhật phiên bản mới mà người dùng không hề hay biết.

    thumbnail

    Kubernetes bài 3 - Bảo mật cấu hình k8s và config Security trên Production

    22.05.2026

    Kubernetes giải quyết bài toán này bằng hai đối tượng chuyên biệt nhưng nếu không hiểu rõ bản chất bảo mật ở tầng dưới, bạn đang tự tay dâng toàn bộ chìa khóa hệ thống cho hacker.

    thumbnail

    Kubernetes bài 2 - Mạng lưới k8s và luồng Traffic ở Packet Level

    22.05.2026

    Pod không chỉ là một container: Rất nhiều người nhầm lẫn Pod 1-1 với Container. Thực chất, Pod là đơn vị triển khai nhỏ nhất, có thể chứa một hoặc nhiều container

    Mục lục bài viết