很多Laravel開發(fā)者困惑于PHP項目本地和服務端環(huán)境不統(tǒng)一,導致一系列的問題。解決這種問題目前的最佳實踐有Docker和Vagrant兩種。對于Laravel項目,Laravel-China社區(qū)的大佬們推薦使用Homestead工具進行開發(fā),本文主要講解該工具在MacOS的安裝和基本使用。
在centos7服務器環(huán)境中安裝使用教程請訪問另一篇文章:在CentOS7上下載Vagrant并使用Homestead。
-
首先,
homestead是基于vagrant的,vagrant是基于virtualBox的。也就是說,我們第一步需要下載virtualBox和vagrant兩個軟件。下載速度可能有點慢,盡量都使用最新版,如果兩個軟件版本相差太大,可能會導致homestead無法使用。官網(wǎng)下載地址:
友情提示:linux服務端下載建議使用wget命令,不要本地下載后使用ftp上傳!!!
-
終端命令行執(zhí)行
vagrant -v用來確定是否正確安裝vagrant和virtualBox,如圖:- image.png
-
box是vagrant管理的一個個容器,現(xiàn)在我們需要下載一個名為
homestead的box。使用命令vagrant box add laravel/homestead,安裝過程需要選擇你本地使用的虛擬機。如圖:- image.png
上面的操作你也可以使用
Vagrantfile來完成:在終端執(zhí)行vagrant init laravel/homestead和vagrant up即可。下載速度太慢的話,可以將圖片中的地址復制到迅雷中下載,然后在同級目錄中使用
vagrant box add homestead homestead.box命令添加本地box。homestead為自定義名稱,homestead.box為本地box名稱。你也可以在 http://app.vagrantup.com手動下載合適的版本。
不要再問下載速度慢的問題,謝謝。
下面是box常用命令:
vagrant box list 列出本地所有box
vagrant box remove boxName 刪除某個box
- 然后安裝好
composer和git,配置好git信息這點就不解釋了,終端執(zhí)行命令git --version && composer --version查看是否安裝成功。
查看`composer`當前使用倉庫源`composer config -g repo`。
修改`composer`默認倉庫為使用`composer config -g repositories.packagist composer http://packagist.phpcomposer.com`。
如圖,新建項目失敗,這是因為國內(nèi)源使用http協(xié)議,
composer官方于2018年已經(jīng)要求使用https。打開composer全局配置文件config.json,該文件位于~/.composer/目錄下。在config中加入"secure-http": false即可。查看
composer下載的laravel版本可以使用cat laravel/composer.json。-
進入項目目錄試試能否運行該框架。
cd laravel && php artisan serve,訪問網(wǎng)頁成功。
image.png 使用
git下載homestead到用戶家目錄:cd && git clone https://github.com/laravel/homestead.git。進入目錄生成
homestead.yaml配置文件,執(zhí)行cd ~/homestead && bash init.sh。windows用戶執(zhí)行init.bat。接下來修改這個homestead配置文件。啟動
vagrant,在homestead/目錄下執(zhí)行vagrant up,你可能會碰到這個問題:Check your Homestead.yaml file, the path to your private key does not exist。這說明你電腦沒有生成ssh密鑰,要生成密鑰,前提是你電腦安裝了git,安裝后在Git安裝目錄下有一個ssh-keygen文件,執(zhí)行這個文件就可以。你也可以執(zhí)行下面的代碼。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
eval "$(ssh-agent -s)"
ssh-add -K ~/.ssh/id_rsa
點擊訪問:安裝常見錯誤。
現(xiàn)在我們使用
vagrant status查看box狀態(tài),如果是running則使用vagrant ssh登陸到box容器中。如果你沒有正確設(shè)置公鑰和私鑰,此時會被要求輸入密碼(密碼為vagrant)。登陸進去后的數(shù)據(jù)庫密碼為secret。如果你不想到
homestead/目錄下再進入box容器,也可以在任何目錄下使用ssh vagrant@127.0.0.1 -p 2222進入。注意一下物理主機與虛擬容器之間的端口映射。
SSH: 2222 → Forwards To 22
HTTP: 8000 → Forwards To 80
HTTPS: 44300 → Forwards To 443
MySQL: 33060 → Forwards To 3306
Postgres: 54320 → Forwards To 5432
-
此時可以訪問
http://homestead.test測試發(fā)現(xiàn)這個問題:No input file specified.。- image.png
這是因為Nginx站點配置的目錄被我手動修改了,我們使用
vagrant ssh登陸到服務器,修改sudo vim /etc/nginx/sites-enabled/homestead.app這個文件中的錯誤目錄即可,不用重啟nginx。-
重新測試訪問即可。
- image.png




