若是是工程化開發,走正規軍路子仍是推薦使用 Homestead。下載Vagrant。官方下載地址php
這裏下載的是Windows版本的安裝包。直接點擊安裝便可,安裝過程當中可自定義安裝路徑。Windows+r啓動cmd,輸入vagrant -v驗證安裝是否成功,若是出現版本信息表示成功。html
注:若是你使用的是 Windows,須要開啓系統的硬件虛擬化(VT-x),這一般能夠經過 BIOS 來開啓。若是你是在 UEFI 系統上使用 Hyper-V,則須要關閉 Hyper-V 以即可以訪問 VT-x。
Homestead 能夠運行在 Windows、Mac 以及 Linux 等主流操做系統上,預裝的軟件和工具列表以下:mysql
使用 Homestead 以前,須要先安裝VirtualBox,以及 Vagrant,全部這些軟件包都爲經常使用操做系統提供了一個便於使用的可視化安裝器,經過安裝界面引導就能夠完成安裝。laravel
注意: 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/homestead
git
選擇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。sql
也能夠選擇手動下載安裝
,laravel/homestead box
下載地址vagrant cloud 下載地址,https://app.vagrantup.com/laravel/boxes/homestead/versions/5.2.0/providers/virtualbox.box
若是你須要下載不一樣版本(或最新版本),請將以上地址中versions/
後的數字版本號替換成相應的版本號。mongodb
virtualbox.box
,和virtualbox.box放置在同一個目錄。執行vagrant box add laravel/homestead ~/Downloads/virtualbox.box
添加。後邊的~/Downloads/virtualbox.box
是文件存放路徑。數據庫
Vagrant 2.0.3有問題,報Invalid file://hostname/, expected localhost or 127.0.0.1 or none。ubuntu
選擇任意目錄做爲Homestead目錄。如:F:
,在這個目錄下執行clone
git clone https://github.com/laravel/homestead.git Homestead
而後進入克隆下的目錄 cd Homestead/
// Mac/Linux... bash init.sh // Windows... init.bat
在 Homestead 目錄下運行init.bat
命令來建立Homestead.yaml
配置文件,生成的 Homestead.yaml 配置文件文件位於當前 Homestead 目錄。若是git Base
執行bash init.sh
。
完成後會生成Homestead.yaml
和Vagrantfile
。
--- #`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
在 Homestead
目錄下運行 vagrant up
命令啓動
這個提示是ip衝突,更改ip便可。
手動下載的,執行vagrant up
時仍是提示找不到,這是由於手動引入的box
版本問題
解決方法就是,進入Homestead/scripts
下的 homestead.rb
文件,作如下修改便可。
vagrant reload --provision
重啓。再執行vagrant up
,首次啓動會有一個初始化過程
vagrant status
查看狀態。running
狀態啓動成功。
vagrant up
:啓動虛擬機vagrant halt
:關閉虛擬機vagrant reload --provision
重啓vagrant suspend
: 暫停虛擬機,就是掛起vagrant resume
:恢復虛擬機 vagrant box remove xx
: 移除box,其中 xx 是 box 名稱vagrant destroy
:刪除虛擬機
從vagrant up
啓動界面能夠看到ssh
登陸地址和端口:
默認帳戶密碼是:vagrant
。使用ssh
登陸工具登陸便可。
要經過本地的 Navicat 或 Sequel Pro 鏈接到 Homestead 上的 MySQL 或 Postgres 數據庫,能夠經過新建鏈接來實現,主機 IP 都是 127.0.0.1
,對於 MySQL 而言,端口號是 33060
,對 Postgres 而言,端口號是 54320
,用戶名/密碼是 homestead/secret
在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 -m
和 phpinfo()
打印出來的不一致。
* `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 -m
和phpinfo()
輸出結果,顯示是一致的。
vagrant 中的版本較多,能夠經過ll /etc/alternatives/php
查看默認的版本。