Vagrant 系列一:安裝配置

若是是工程化開發,走正規軍路子仍是推薦使用 Homestead。下載Vagrant。官方下載地址php

這裏下載的是Windows版本的安裝包。直接點擊安裝便可,安裝過程當中可自定義安裝路徑。Windows+r啓動cmd,輸入vagrant -v驗證安裝是否成功,若是出現版本信息表示成功。html

clipboard.png

注:若是你使用的是 Windows,須要開啓系統的硬件虛擬化(VT-x),這一般能夠經過 BIOS 來開啓。若是你是在 UEFI 系統上使用 Hyper-V,則須要關閉 Hyper-V 以即可以訪問 VT-x。

clipboard.png

預裝軟件

Homestead 能夠運行在 Windows、Mac 以及 Linux 等主流操做系統上,預裝的軟件和工具列表以下:mysql

  • Ubuntu 16.04
  • Git
  • PHP 7.2
  • PHP 7.1
  • PHP 7.0
  • PHP 5.6
  • Nginx
  • Apache(可選)
  • MySQL
  • MariaDB(可選)
  • SQLite3
  • PostgresSQL
  • Composer
  • Node(With Yarn, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • Elasticsearch(可選)
  • ngrok

1. 安裝前準備

使用 Homestead 以前,須要先安裝VirtualBox,以及 Vagrant,全部這些軟件包都爲經常使用操做系統提供了一個便於使用的可視化安裝器,經過安裝界面引導就能夠完成安裝。laravel

2.安裝 Vagrant box

注意: Laravel官方推薦的Shell是 Git Bash。由於 Git Bash自動將 ~(tilde)映射到用戶根目錄下(例如, C:\Users\MyUserName),而若是使用Windows自帶的 cmd,那麼須要使用 %HOMEDRIVE%%HOMEPATH%環境變量來進入正確的文件夾。

VirtualBox 和 Vagrant 安裝好了以後,在終端中使用以下命令將Homestead Vagrant box laravel/homesterad 添加到 Vagrant 中
vagrant box add laravel/homesteadgit

clipboard.png

選擇virtualbox選項,進入下載等待,時間取決於網絡。若是上述命令執行失敗,須要確認 Vagrant 是不是最新版本。網絡或者機器關機中斷後一直報錯 Failed to connect to vagrantcloud-files-production.s3.amazonaws.com port 443: Timed out之類的錯誤。還有解壓錯誤等。多是跟網絡有關係,再試幾回就成功了(能夠用管理員打開cmd去試試)。國內網絡也就這樣了,不行就移步手動下載。github

x ubuntu-16.04-amd64-disk001.vmdk: gzip decompression failed
    bsdtar.EXE: Error exit delayed from previous errors.

使用vagrant box list命令確認是否安裝了box。
clipboard.pngsql

也能夠選擇手動下載安裝laravel/homestead box下載地址vagrant cloud 下載地址https://app.vagrantup.com/laravel/boxes/homestead/versions/5.2.0/providers/virtualbox.box
若是你須要下載不一樣版本(或最新版本),請將以上地址中versions/後的數字版本號替換成相應的版本號。mongodb

clipboard.png

下載好以後更名爲virtualbox.box,

和virtualbox.box放置在同一個目錄。執行vagrant box add laravel/homestead ~/Downloads/virtualbox.box添加。後邊的~/Downloads/virtualbox.box是文件存放路徑。數據庫

clipboard.png

clipboard.png

clipboard.png

Vagrant 2.0.3有問題,報Invalid file://hostname/, expected localhost or 127.0.0.1 or none。ubuntu

3. 安裝 Homestead

選擇任意目錄做爲Homestead目錄。如:F:,在這個目錄下執行clone

git clone https://github.com/laravel/homestead.git Homestead
或者下載zip包 GitHub路徑

而後進入克隆下的目錄 cd Homestead/

// Mac/Linux...
bash init.sh

// Windows...
init.bat

clipboard.png

在 Homestead 目錄下運行 init.bat 命令來建立 Homestead.yaml 配置文件,生成的 Homestead.yaml 配置文件文件位於當前 Homestead 目錄。若是 git Base 執行 bash init.sh

完成後會生成Homestead.yamlVagrantfile

---
#`Homestead.yaml`配置文件:
# 虛擬機ip
ip: "192.168.10.10"
# 虛擬機使用內存
memory: 2048
# 虛擬機使用的單核CPU
cpus: 1
# Vagrant 提供者
provider: virtualbox
# 公共ssh key
authorize: ~/.ssh/id_rsa.pub
# 私有ssh key
keys:
    - ~/.ssh/id_rsa
# 共享文件夾
folders:
    - map: ~/code
      to: /home/vagrant/code
# 站點配置
sites:
    - map: homestead.test
      to: /home/vagrant/code/public
# 數據庫名
databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# 端口轉發
# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

variables:
    - key: APP_ENV
      value: local

若是sites在配置Homestead框後更改屬性,則應該從新運行以更新虛擬機上的Nginx配置,vagrant reload --provision
修改本地host文件:在 Mac 或 Linux上,該文件位於 /etc/hosts,在 Windows 上,位於 C:\Windows\System32\drivers\etc\hosts。和配置文件中的ip保持一致

192.168.10.10 homestead.test

clipboard.png

Homestead 目錄下運行 vagrant up 命令啓動

clipboard.png

這個提示是ip衝突,更改ip便可。

clipboard.png

手動下載的,執行vagrant up 時仍是提示找不到,這是由於手動引入的box版本問題

clipboard.png

解決方法就是,進入Homestead/scripts 下的 homestead.rb文件,作如下修改便可。

clipboard.png

vagrant reload --provision 重啓。再執行vagrant up,首次啓動會有一個初始化過程

clipboard.png

vagrant status 查看狀態。running狀態啓動成功。

clipboard.png

4. 相關管理命令

vagrant up :啓動虛擬機
vagrant halt :關閉虛擬機
vagrant reload --provision 重啓
vagrant suspend: 暫停虛擬機,就是掛起
vagrant resume :恢復虛擬機
vagrant box remove xx: 移除box,其中 xx 是 box 名稱
vagrant destroy :刪除虛擬機

5. SSH 登陸

vagrant up 啓動界面能夠看到ssh登陸地址和端口:

clipboard.png

默認帳戶密碼是:vagrant。使用ssh登陸工具登陸便可。

6. 鏈接mysql

要經過本地的 Navicat 或 Sequel Pro 鏈接到 Homestead 上的 MySQL 或 Postgres 數據庫,能夠經過新建鏈接來實現,主機 IP 都是 127.0.0.1,對於 MySQL 而言,端口號是 33060,對 Postgres 而言,端口號是 54320,用戶名/密碼是 homestead/secret


7. php擴展安裝

在vagrant box 上安裝PHP擴展
這裏以安裝MongoDB擴展爲例:
1. 首先安裝mongodb數據庫

`apt-get update` 更新源,也能夠不更新,包的新舊問題

sudo apt-get install -y mongodb
2. 安裝mongodb擴展

pecl update 通道升級 `sudo pecl channel-update`

`pecl install mongodb`  php7 以上的版本,默認最新

修改配置文件。特別注意,vagrant中須要修改兩處,否則會出如今 php -mphpinfo()打印出來的不一致。

* `sudo vim /etc/php/7.2/fpm/php.ini` 第一處
* `sudo vim /etc/php/7.2/cli/php.ini` 第二處

添加extension=mongodb.so進去。而後重啓php-fpm。

執行命令: sudo service php7.2-fpm restart

這樣就能夠經過php -mphpinfo()輸出結果,顯示是一致的。
vagrant 中的版本較多,能夠經過ll /etc/alternatives/php 查看默認的版本。
clipboard.png

相關文章
相關標籤/搜索