Homestead安装

时间:2024-10-03 07:58:56

安装软件

  1. 安装vargrant
  2. 安装Virtualbox
  3. 安装git

导入box

下载,点击下载

新建了一个文件夹名为homestead,然后将下好的box重命名为放入,然后在此文件夹内运行如下命令(这里是按照一些普通的教程来添加,这时候挖了一个坑,后面填上)。

vagrant box add laravel/homestead

接着运行

vagrant box list

发现这个box已经添加进来就ok了。

下载官方homestead配置

可以参考的官方文档
按照文档的说明首先运行(必须本地已经安装了git)

git clone /laravel/ Homestead

接着在已经克隆下来的文件夹内,会发现bash ,两个文件,这两个分别是将该目录内的Homestead.yaml文件拷贝到你的系统“家”目录下。如果是在win下,又安装了git bash,则运行bash ,均可。如果是在linux下,则运行bash 。接着就生成了几个配置文件,且被复制到homestead项目的根目录中(源在homestead项目文件的resources文件夹下)。
在这里插入图片描述

配置

设置 IP及Provider

文件中的provider键表示使用哪个 Vagrant 提供者:virtualbox、vmware_fushion或者vmware_workstation,你可以将其设置为自己喜欢的提供者:

ip: “192.168.10.10”

provider: virtualbox

配置共享文件夹

文件中的folders属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹(一般一个就够了):

folders:

  • map: D:/homestead/code #(这是我本地的文件夹)
    to: /home/vagrant/Code

假设D盘有一个叫做 laravel 的文件夹,专门用来存放 laravel 的项目。

folders:

- map: D:/laravel

  to: /home/vagrant/Code
  • 1
  • 2
  • 3

配置 Nginx 站点

对 Nginx 不熟?没问题,通过sites属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:

sites:

  • map:
    to: /home/vagrant/Code/Laravel/public

Hosts文件

还需要把 Nginx 站点配置中的域名添加到本地机器上的hosts文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于/etc/hosts,在 Windows 上,位于C:\Windows\System32\drivers\etc\hosts,添加方式如下:

192.168.10.10

确保 IP 地址和你的文件中列出的一致,一旦你将域名放置到hosts文件,就可以在浏览器中通过该域名访问站点了:

设置数据库

数据库的设置和 sites 的设置是对应的

sites:

- map: 

  to: /home/vagrant/Code/myweb/public

- map: 

  to: /home/vagrant/Code/myweb2/public
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

databases:

- myweb
- myweb2
  • 1
  • 2

启动vagrant

在 Homestead 目录下运行vagrant up命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点。
在这里插入图片描述
错误提示:
Check your file, the path to your private key does not exist.

说明你电脑没有生成ssh密钥,要生成密钥,在git-bash中执行ssh-keygen。
在这里插入图片描述
执行vagrant up,报错提示:

Bringing machine 'homestead-7' up with 'virtualbox' provider...
Failed to locate the powershell executable on the available PATH. Please
ensure powershell is installed and available on the local PATH, then
run the command again.
  • 1
  • 2
  • 3
  • 4

导致该坑的原因,我们看之前的vagrant box list,里面显示

laravel/homestead (virtualbox, 0)

移除之添加的homebox:

$ vagrant box remove laravel/homestead --box-version 0

在homestead目录下新建文件,versions填写下载的box的版本号。如下载的homebox为7.2.1,则:

{
	"name": "laravel/homestead",
	"versions": [{
		"version": "7.2.1",
		"providers": [{
		"name": "virtualbox",
		"url": "file:///D:/homestead/"
		}]
	}]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

执行vagrant box add
在这里插入图片描述
执行vagrant up
如提示错误:

A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,
get an ID of a target machine from `vagrant global-status` to run
this command on. A final option is to change to a directory with a
Vagrantfile and to try again.
  • 1
  • 2
  • 3
  • 4
  • 5

执行vagrant init,再执行vagrant up

如出现错误提示:
在这里插入图片描述
下载更新包,更新powershell下载地址
选择更新包进行更新,重启电脑。
打开,进入Homestead根目录,执行vagrant up。
在这里插入图片描述

安装Laravel

上面安装了一个虚拟机,配置好了php等一系列环境,然后,进入这个虚拟机,开始下载Laravel,以后都在虚拟机中进行操作,跟本地无关了。

进入虚拟机

vagrant ssh
  • 1

查看共享目录

进入上面配置的folder共享目录,没有就创建,正常情况下,映射目录中已和本地目录中一致。

下载Laravel installer

composer global require "laravel/installer"
  • 1

这边就能体现出Homestead的优势了,composer,php,git全部都在环境变量中,都是最新版本,不需要自己考虑。但是,由于下载安装完成composer 后 默认是国外镜像,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。所以建议使用国内的composer源。
修改 composer 的全局配置文件(推荐方式)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:

composer config -g  composer 
  • 1

然后重新安装。

composer global require laravel/installer
  • 1

新建应用

安装完成后,通过简单的 laravel new 命令即可在当前目录下创建一个新的 Laravel 应用,例如,laravel new blog将会创建一个名为 blog 的新应用,且包含所有 Laravel 依赖。该安装方法比通过 Composer 安装要快很多:

laravel new blog
  • 1

如果之前已经安装过旧版本的 Laravel 安装器,需要更新后才能安装最新的 Laravel 5.6 框架应用:

composer global update
  • 1

链接:
/p/ae9d1261bbd8
/p/ae9d1261bbd8
/u014665013/article/details/77775911
/m0_38092942/article/details/80204648