Cài đặt 1 project Laravel mới dùng homestead

0.Trình tự:

  • Tạo 1 project Laravel có sẵn
  • Setting homestead cho từng project

1. Tạo mới 1 project Laravel

composer create-project --prefer-dist laravel/laravel  TÊN_PROJECT  

với TÊN_PROJECT ở đây là tên dự án bạn muốn cài đặt

2. Setting homestead cho project:

Require gói homestead:

//cd tới folder root  của project  và chạy lệnh dưới 

composer require laravel/homestead --dev  

Tạo file config homestead cho project, với môi trường MAC/Linux

php vendor/bin/homestead make  

Sau lệnh trên, 2 file Homestead.yamlVagrantfile được sinh ra

Trong file Homestead.yaml, có đoạn:

---
ip: "192.168.10.10"  
memory: 2048  
cpus: 1  

Đây là thông số cấu hình máy ảo chạy project của bạn. Thông số ip chính là ip của máy ảo truy cập từ máy của bạn.

Ngoài ra,còn có thông tin dưới:

sites:  
    - map: homestead.app
      to: "/home/vagrant/TÊN_PROJECT/public"

Thông tin map: homestead.app chính là domain của máy ảo vagrant đã thiết lập để truy cập vào ứng dụng.

Để truy cập vào ứng dụng bạn đã cài đặt, cần thiết lập thông tin domain trỏ vào ip của máy ảo trong file hosts của máy bạn. Trên MAC vs Linux thường là /etc/hosts. Như ở ví dụ hiện tại, bạn cần thêm dòng dưới đây vào file hosts:

192.168.10.10 homestead.app  

Khởi động máy ảo:

vagrant up  

và browse ứng dụng của bạn qua browser:

http://homestead.app  

3 Provisioning

Chúng ta đã có máy ảo homestead chứa môi trường phát triển cơ bản cho Laravel.
Thỉnh thoảng chúng ta sẽ gặp một số project dùng Laravel có thể sẽ phải cài thêm một số package của hệ điều hành.

Ví dụ như khi thực hiện việc resize ảnh trên server, bạn có thể sẽ phải cài thêm gói Image-magick để thực hiện công việc này.
Tất nhiên bạn có thể ssh và cài đặt gói này, tuy nhiên trong một team cùng phát triển 1 dự án, từng thành viên sẽ phải làm những công việc giống nhau để cài đặt các gói đó.

Vagrant có tính năng hỗ trợ việc tự động cài đặt các gói này sau khi khởi tạo máy ảo (vagrant up), giúp chúng ta chia sẻ homestead giữa các thành viên của dự án sẽ có sẵn các package có thể dùng luôn.

Homestead cũng hỗ trợ bạn làm điều này.
Trong bước tạo file config cho homestead bạn chỉ cần thêm option --after

vendor/bin/homestead make --after  

Tại root folder của project, sẽ có 1 file after.sh được tạo ra, với nội dung

#!/bin/sh

# If you would like to do some extra provisioning you may
# add any commands you wish to this file and they will
# be run after the Homestead machine is provisioned.

Và bạn có thể thêm các câu lệnh cài đặt các pakage mà bạn muốn. Ví dụ:

sudo apt-get update -y  
sudo apt-get install imagemagick --fix-missing -y  
sudo apt-get install php5-imagick -y  
sudo nginx -s reload

Sau đó, mỗi lần vagrant up hoặc vagrant reload --provision, file after.sh sẽ được thực thi và tự động cài các package này cho bạn.