Windows下Laravel-Homestead環境搭建

本文作者:陳進堅
個人博客:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
簡書:https://www.jianshu.com/u/8ba9ac5706b6
聯繫方式:[email protected]

下載安裝包

本文所有的程序已經上傳到百度雲盤,如有失效請聯繫作者進行更新下載鏈接

鏈接:https://pan.baidu.com/s/1ltcH3IABqDiEZz0aC_0Zsw
提取碼:609b

安裝VirtualBox

VirtualBoxOracle 公司的開源虛擬機軟件,安裝包下載完成之後,雙擊安裝包進行安裝,之後按照提示操作一步一步進行安裝即可。

安裝Vagrant

Vagran是用來管理虛擬機的工具,支持當前主流的虛擬機系統如 VirtualBoxVMwareAWS 等。Vagrant 的主要作用是提供一個可配置、可移植和複用的軟件環境。安裝包下載完成之後,雙擊安裝包進行安裝,之後按照提示操作一步一步進行安裝即可。

安裝Git

Git是一款非常流行的代碼版本控制工具。安裝包下載完成之後,雙擊安裝包進行安裝,之後按照提示操作一步一步進行安裝即可。

安裝 Homestead

說明

Homestead 腳本使用 Ruby 和 Shell 腳本編寫而成。原理是對Vagrantfile 文件做定製。將從 ~/Homestead/Homestead.yaml 讀取的配置信息,在provision 時,解析爲 Vagrant 命令並進行對虛擬機的配置。Homestead 腳本的作用在於,提供了極其簡單易用的接口,使我們只需要通過傻瓜化配置,即可完成複雜的任務。

homestead.box 虛擬機盒子是提前打包好的 Vagrant Box 虛擬機盒子,裏面預裝了 Nginx Web 服務器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 開發時所需要用到的各種軟件。爲了學習的流暢性,我們接下來將會使用定製版本的虛擬機盒子,你不需要太擔心版本的事情。由於國內的網絡環境原因,我們特意爲大家定製了適用於國情的 Homestead 安裝包,該安裝包提供了以下內容:

  • Composer 加速,配置了 Composer 中國全量鏡像 支持;
  • 默認集成 Heroku 工具;
  • 默認集成 Yarn,併爲Yarn 加了淘寶鏡像的加速;
  • 使用 CNPMNPM 進行加速。

安裝

1.lc-homestead-6.4.1-2019072300.zip文件下載完成後解壓,可以看到有兩個文件

  • virtualbox.box(教程定製化過的 Homestead 盒子)
  • metadata.json(盒子的導入配置文件)

在解壓目錄(非中文)中 lc-homestead-6.4.1-2019072300 運行以下命令導入 Box:

vagrant box add metadata.json

2.進入用戶根目錄

cd C:\Users\你的用戶名

使用 Git 下載定製版的 Homestead

git clone https://git.coding.net/summerblue/homestead.git Homestead

使用 Git 檢出我們需要的 Homestead 版本

cd ~/Homestead
git checkout v7.8.0

初始化 Homestead

bash init.sh

運行以上命令後,會在 ~/Homestead 目錄下生成以下三個文件:

  • Homestead.yaml - 主要配置信息文件,我們可以在此文件中配置 Homestead 的站點和數據庫等信息;
  • after.sh - 每一次 Homestead 盒子重置後(provision)會調用的 shell 腳本文件;
  • aliases - 每一次 Homestead 盒子重置後(provision),會被替換至虛擬機的 ~/.bash_aliases 文件中,aliases 裏可以放一些快捷命令的定義。

3.生成SSH Key,如果你之前已經生成過,可以直接跳過這一步;

檢測是否已經生成過SSH Key

ls -al ~/.ssh

如果存在 id_rsaid_rsa.pub 的話,請跳過以下生成 SSH Key 的步驟

生成SSH Key,替換掉下面的郵箱

 ssh-keygen -t rsa -C "[email protected]"

接下來一路按回車選擇默認即可。

4.配置站點

創建Code目錄,默認情況下將會在該文件夾下放置我們所有的 Laravel 項目,Homestead 會把該文件夾下的項目自動映射到虛擬機的 /home/vagrant/Code 文件夾上。當然,我們也可以通過修改C:\Users\用戶名\Homestead\Homestead.yaml文件中folders欄目將本地目錄與虛擬機目錄綁定,一旦本地文件有變化,虛擬機的文件也會自動同步修改。

主機裏直接訪問虛擬機站點,必須通過綁定 hosts 來實現。接下來我們利用 hosts 文件綁定 homestead.test 到虛擬機 IP 192.168.10.10 上。hosts 文件的完整路徑爲 C:\Windows\System32\Drivers\etc\hosts,在 hosts 文件的最後面加入以下一行

192.168.10.10  homestead.test

啓動Homestead

cd C:\Users\用戶名\Homestead && vagrant up

登錄Homestead

vagrant ssh

登錄成功後,你能看到類似於如下圖的界面,現在我們在該終端界面中輸入的所有命令都將運行在 Homestead 虛擬機上

退出和關閉Homestead

退出虛擬機

exit

關閉虛擬機

vagrant halt

通過工具連接MySql

可以使用Navicat等可視化工具連接mysql,mysql的默認配置如下

IP:192.168.10.10

端口:3306

用戶名:homestead

密碼:secret

通過工具連接命令行

上面說過可以通過SSH Key來連接命令行,由於系統是ubuntu,所以也可以通過xshell等工具連接命令行。默認配置如下

IP:192.168.10.10

用戶名:vagrant

密碼:vagrant

修改Composer全量鏡像

按照Laravel China 社區文章《Laravel China鏡像完成歷史使命,將於兩個月後停用》,我們需要修改Composer全量鏡像爲阿里雲 Composer 全量鏡像,否則Composer會報錯。

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

安裝Laravel

通過 Composer 安裝 Laravel 安裝器:

composer global require "laravel/installer"

創建 Laravel 應用

創建code目錄,這裏創建一個名爲blog的應用

mkdir code
cd code
laravel new blog

windows環境下創建應用,使用5.7版本

composer create-project laravel/laravel blog "5.7.*"

添加站點

Windows環境的C:\Users\用戶名\Homestead\Homestead.yaml文件中sites欄目添加

sites:
    - map: homestead.test
      to: /home/vagrant/code/blog/public

然後在 hosts 文件的最後面加入以下一行

192.168.10.10  homestead.test

運行serve腳本

serve  homestead.test /home/vagrant/code/blog

退出Homestead然後重啓虛擬機讓上面的配置在homestead中生效

exit
vagrant reload --provision

打開瀏覽器訪問http://homestead.test/即可

站點的配置文件會自動創建在/etc/nginx/sites-available/目錄

PHP管理

  • 切換版本

    進入目錄/etc/php可以看到php的各個版本

    vagrant@homestead:/etc/php$ ls
    5.6  7.0  7.1  7.2  7.3
    

    要切換版本只需在在Windows環境的C:\Users\用戶名\Homestead\Homestead.yaml文件中sites欄目指定版本然後重啓虛擬機即可,所有站點只能指定相同的版本,否則會報錯

        - map: wd.com
          to: /home/vagrant/code/qianlong_sys
          php: "7.1"
        - map: admin.kd.do
          to: /home/vagrant/code/yii2_admin/backend/web
          php: "7.1"
    
    • 重啓

      命令根據版本做修改

      /etc/init.d/php-fpm5.6 restart
      

Nginx管理

/etc/init.d/nginx restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章