Laravel的目的就是讓開發這的開發體驗更愉快,開發過程更加簡單。在環境搭建上也是如此。
Laravel
homestead是一個官方發佈的vagrant封裝包——一個虛擬機——提供完備的開發環境。在homestead配置完成後,不需要在本地環境中配
置任何的開發工具,vagrant可以搞定一切。因爲是虛擬機,不會對本地系統產生任何的破壞。同時如果出現故障,可以在幾分鐘內銷燬並重建虛擬機。
homestead是跨平臺的,可以在windows,Linux,Mac上運行,其中集成了nginx,php5.6,MySql,postgres,Redis,Memcached,HHVM等所有開發laravel所需的軟件。
本文檔是針對windows環境下homestead的配置運行。
1. 本地環境設置
1.1 編輯器
建議使用sublime Text 3,會有單獨文檔來說明如何使用Sublime Text高效開發php。
1.2 php
運行composer必須要有PHP,建議使用最新版本的發行版php,目前最新版本5.6.8。php
windows版本分爲32位和64位的,64位目前仍處於試驗階段,我們選擇穩定的32位版本。其中又分爲thread safe和not
thread safe版本,在web開發中我們選擇not thread safe版本,點擊這裏下載。
注意 php windows版本使用VC11編譯,系統需要有Visual C++ Redistributable for Visual Studio 2012 x86 or x64,如果系統沒有安裝這個包,請點擊這裏下載安裝。
(1) 下載壓縮包解壓到C盤根目錄
(2) 配置環境變量,添加C:\php-5.6.8-nts-Win32-VC11-x86到PATH。
(3) 修改php配置。拷貝php.ini-development 爲php.ini。去extension=php_openssl.dll
(composer需要) extension=php_mbstring.dll
(laravel需要)前的註釋。找到; extension_dir = "ext"
,修改爲extension_dir = "C:\php-5.6.8-nts-Win32-VC11-x86\ext"
。
(4)打開console,運行php -version
確認php安裝成功。
C:\>php -version PHP 5.6.8 (cli) (built: Apr 15 2015 15:07:05) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
1.3 composer
點擊這裏下載。
安裝完成後,打開console,運行composer --version
確認安裝成功。
C:\>composer --version Composer version 1.0-dev (bc45d9185513575434021527d7756420e9f4b2cf) 2015-05-11 14:49:39
composer默認會從·http://packagist.org/· 下載依賴包,速度比較慢,可以採用國內的鏡像包來替代源。
composer的全局配置文件位於 C:\Users\benjamincao\AppData\Roaming\Composer\composer.json
,兩個速度比較快的可選的源配置如下:
{ "repositories":[ { "type":"composer", "url":"https://toran.reimu.io/repo/packagist/" }, { "packagist":false } ] }
或者
{ "repositories": [ { "type": "composer", "url": "http://comproxy.cn/repo/packagist" }, { "packagist": false } ] }
在開發laravel項目時,也可以在當前項目的composer.json文件中添加這些國內鏡像,可以加快對包的更新
1.4 putty
putty是免費的ssh客戶端,登錄homestead虛擬機的利器。
點擊這裏下載。
注意 如果不使用putty登錄,用homestead ssh登錄,也可以。
2. Homestead 相關軟件安裝
2.1 vagrant
vagrant是一個虛擬機管理工具。在添加虛擬機後,可以啓動虛擬機的鏡像,如果出現錯誤,可以隨時銷燬重建開發環境。
從這裏 下載。下載後直接安裝。
vagrant安裝確認:
C:\>vagrant --version Vagrant 1.7.2
2.2 virtualbox
virtualbox是作爲vagrant的一個provider,安裝後,在啓動homestead時候,vagrant會自動啓動virtualbox。
從這裏 下載,下載直接安裝。
2.3 homestead
直接使用composer安裝
composer global require "laravel/homestead=~2.0"
homestead將會被安裝在C:\Users\benjamincao\AppData\Roaming\Composer\vendor\laravel\homestead
2.4 Git
安裝Git的目的是使用Git Bash,homestead的啓動腳本是bash shell,windows下面使用Git Bash正好。
點擊這裏下載,然後安裝。安裝完畢就可以使用了。
3. 環境啓動
3.1 使用vagrant添加homestead鏡像文件
vagrant box add laravel/homestead
選擇virtualbox作爲provider。
下載的虛擬機,位於C:\Users\benjamincao\VirtualBox VMs\homestead
注意虛擬機文件較大,下載需要較長時間,可以直接拷貝後,添加到vagrant中。
vagrant box add laravel/homestead file:///d:/hbox/virtualbox.box
3.2 生成rsa key
通過ssh登錄homestead需要這個。
打開Git Bash,這是一個比較完備的Windows下的shell工具。在運行homestead的命令的時候都需要在這個bash中運行。
ssh-keygen.exe -t rsa -C "[email protected]"
3.3 配置並啓動homestead
cd AppData/Roaming/Composer/vendor/laravel/homestead/ homestead init
生成homestead的配置文件,位於C:\Users\benjamincao\.homestead\Homestead.yaml
homestead edit
使用編輯器打開創建的配置文件。
--- # 虛擬機配置。 ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa # 共享文件夾配置,map是本地文件夾,此處修改爲本地項目文件夾;to是虛擬機的文件夾,一般不需要修改,因爲homestead中的nginx的配置也是如此。 folders: - map: ~/Code to: /home/vagrant/Code # nginx的配置。需要在本地hosts中添加域名的解析。 sites: - map: homestead.app to: /home/vagrant/Code/public # mysql的數據庫配置 databases: - homestead # 這個不知道是幹什麼用的,猜測是環境變量設置。 variables: - key: APP_ENV value: local
一個可用的配置示例:
--- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: c:/Users/benjamincao/.ssh/id_rsa.pub keys: - c:/Users/benjamincao/.ssh/id_rsa folders: - map: D:/workspace/ERP/trunk to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public databases: - homestead variables: - key: APP_ENV value: local # blackfire: # - id: foo # token: bar # client-id: foo # client-token: bar # ports: # - send: 93000 # to: 9300 # - send: 7777 # to: 777 # protocol: udp
啓動homestead
homestead up
3.4 登錄說明
登錄主要包括ssh的登錄和mysql的登錄。
3.4.1 ssh登錄
homestead ssh
我這裏在使用homestead ssh
時,總是會出現屏幕卡死的情況,推薦使用putty登錄。
初始用戶名密碼 vagrant / vagrant
3.4 2 mysql密碼
homestead / secret
root / secret
3.5 高級配置
3.5 增加新的網站
方法一
在homestead.yaml
中添加站點配置。然後再homestead目錄執行命令vagrant provision
。vagrant provision
這個命令是有破壞性的,它會重新構建數據庫方法二
ssh登錄homestead後,執行serve命令。serve domain.app /home/vagrant/Code/path/to/public/directory 80
4. 命令詳解
4.1 homestead命令
命令 | 解釋 |
---|---|
up | 啓動homestead |
halt | 停止homestead |
init | 創建初始化的homestead.yaml |
edit | 編輯homestead.yaml |
suspend | 掛起homestead |
resume | 繼續掛起的homestead |
ssh | 通過ssh登錄homestead |
run | 通過ssh在homestead上運行命令 |
status | 獲取homestead的狀態 |
list | 列表命令 |
help | 顯示命令的幫助 |
provision | 重新配置homestead |
destory | 銷燬homestead |
update | 更新homestead鏡像 |
在 1.3 composer 的安裝中最好使用***工具進行***後安裝,避免一直提示 “Connection Error [ERR_CONNECTION]: Unable to connect to getcomposer.org ...” 錯誤
在 2.3 homestead中
直接使用composer安裝時,最好在composer.json中加上
避免錯誤:
如果homestead up的時候,一直提示下面的錯誤
解決:確保CPU開啓了Virtualization Technology(VT)虛擬化支持。針對Intel的CPU,可在開機時按住相應的功能鍵進入BIOS,確認Intel Virtual Technology配置爲enable。
錯誤:
執行以下步驟:
1、刪除C:\Users\Carnet Motors\VirtualBox VM目錄下的所有文件
2、在CMD運行如下命令
新版本安裝不能直接 homestead init 而是要使用
bash init.sh
~ homestead up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'laravel/homestead' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: <= 0.3.0
打開C:\Users\Carnet Motors\AppData\Roaming\Composer\vendor\laravel\homestead\scripts\homestead.rb文件 把
config.vm.box_version = settings["version"] ||= "<= 0.3.0"
改爲 config.vm.box_version = settings["version"] ||= ">= 0.3.0"