1-2-8
[參考]用Homestead建構開發環境
- Homestead是Laravel的建議環境,有相當完善的配套,不過,安裝起來比較久,所以,參考一下,有空再玩。
- 首先,先安裝https://www.virtualbox.org/(因為Homestead基本上就是一個基於ubuntu的虛擬機)
- 然後,安裝https://www.vagrantup.com/downloads.html(vagrant用來下載建置好的Homestead虛擬機設定),裝好後須重新開機。
- 接著,在終端機中執行以下指令,以便下載建置好的Homestead虛擬機設定(此時會需要蠻長一段時間)
cd ~
vagrant box add laravel/homestead
-
接著安裝Homestead
git clone https://github.com/laravel/homestead.git Homestead
-
執行Homestead初始化(用來產生Homestead.yaml等檔案)
cd .\Homestead\
.\init.bat
-
先檢查ssh的金鑰是否存在
ls ~/.ssh
-
裡面若有id_rsa
及id_rsa.pub
就OK,可以跳過此步驟。若出現「ls : 找不到 'C:\Users\使用者名稱\.ssh' 路徑,因為它不存在。」或者檔案不存在就請從開始選單打開「Git→Git Bash」,並執行以下指令產生金鑰(Email 請用GitGub的登入Email), 過程可以都選擇預設,一路 Enter
鍵即可 。
ssh-keygen -t rsa -C "your_email@example.com"
-
看起來像這樣:
-
接著編輯設定檔Homestead.yaml
(主要用來設定 Homestead 的站點和資料庫等訊息 )
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/xampp/htdocs
to: /home/vagrant/public_html
- map: ~/xampp/phpMyAdmin
to: /home/vagrant/public_html/phpmyadmin
sites:
- map: 專案目錄名稱.test
to: /home/vagrant/public_html/專案目錄名稱/public
- map: phpmyadmin.test
to: /home/vagrant/public_html/phpmyadmin
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
-
以上這樣的設定,就可以把local端的網頁目錄htdocs
和Homestead的網頁目錄下public_html
同步(實際上就是共享資料夾),但要注意的是,一定要多一層資料夾(如:public_html
名稱可換),但不能只有/home/vagrant
否則會無法登入。
-
另外,由於xampp裡有內建phpMyAdmin,而Homestead剛好沒有,所以,我們也設定一組對應,以便能夠操作虛擬機裡面的資料庫。
-
此外,僅程式是共用的,但資料庫是分別儲存的(除非設定到遠端的資料庫,例如:https://db4free.net/)
-
編輯C:\Windows\System32\drivers\etc\hosts
檔,在最後加入(輸入http://exam.test就是跑Homestead上的網站,輸入http://phpmyadmin.test則是管理Homestead上的資料庫,輸入http://exam.local則是跑xampp上的網站)
192.168.10.10 exam56.test
192.168.10.10 phpmyadmin.test
127.0.0.1 exam56.local
-
由於phpMyAdmin實際上是放在windows底下,所以其權限會是777,如此,當您在執行phpMyAdmin時就會出現「設定檔權限錯誤,檔案不應開啟所有寫入權!」的訊息且無法使用,因此,我們必須將該檢查關閉,才能順利使用phpMyAdmin。故開啟xampp\phpMyAdmin\libraries\config.default.php
編輯之(約2998行):
$cfg['CheckConfigurationPermissions'] = false;
-
最後就可以啟動Homestead囉!(須切換到Homestead目錄裡面)當設定檔有異動的時候,必須加個--provision
,若沒異動,不加該參數也沒關係。(注意,須移除HyperV,且virtualbox也必須是最新版才能正常啟動)
cd ~/Homestead
vagrant up --provision
-
啟動過程中確保網路設定正確(有勾選「線路已連接」)
-
亦可登入操作(無須帳號密碼)
vagrant ssh
-
登出請執行
exit
-
關閉Homestead請執行
vagrant halt