安装及配置:
安装
使用Vagrant安装Homestead盒子
安装 Homestead
配置 Homestead
设置 Provider
配置共享文件夹
配置 Nginx 站点
Hosts文件
启动 Vagrant Box
可选操作
为指定项目安装 Homestead
日常使用
全局访问 Homestead
MacLinux
Windows
通过 SSH 连接
连接到数据库
配置 Cron 调度任务
分享你的环境
Homestead 可以运行在 Windows、Mac 以及 Linux 等主流操作系统上,预装的软件和工具列表如下:
Ubuntu 16.04
PHP 7.1
Nginx
MySQL
MariaDB
SQLite 3
Postgres
Composer
Node(With Yarn, Bower, Grunt, and Gulp)
Redis
Memcached
Beanstalkd
Mailhog
ngrok
注:如果你使用的是 Windows,需要开启系统的硬件虚拟化(VT-x),这通常可以通过 BIOS 来开启。如果你是在 UEFI 系统上使用 Hyper-V,则需要关闭 Hyper-V 以便可以访问 VT-x。
先下载安装VirtualBox和Vagrant。
以下命令本人使用的是git bash
vagrant box add laravel/homestead
一键Ghost Win7 64位旗舰版(非常快的系统)V2017.12
一键Ghost Win7 64位旗舰版(非常快的系统)V2017.12
安装过程需要较长时间(取决于你的网络连接速度),并且容易网络中断。
推荐:
复制上面图片中的下载地址并用迅雷下载(下载之后的名字可能是一串乱码)
通过这种方式下载的话需要手动将其添加到 Vagrant:
vagrant box add laravel/homestead 下载文件的路径
运行上述命令有可能报错:
Check your Homestead.yaml file, the path to your private key does not exist.
解决办法如下:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"eval "$(ssh-agent -s)"ssh-add -K ~/.ssh/id_rsa
再次运行上述命令即可添加成功
添加成功提示
==> box: Successfully added box 'laravel/homestead' (v0) for 'virtualbox'!
你可以通过克隆仓库代码来实现 Homestead 安装。将仓库克隆到用户目录下的 Homestead 目录,这样 Homestead 盒子就可以作为所有其他 Laravel 项目的主机:
cd ~git clone https://github.com/laravel/homestead.git Homestead
克隆完成后,你需要检查 Homestead 的版本标签,因为 master 分支不会总是稳定版本,你可以在 GitHub Release Page 查找到最新稳定版本然后在本地将其检出:
cd Homestead// Clone the desired release...git checkout v6.1.0
接下来,在 Homestead 目录下运行 bash init.sh 命令来创建 Homestead.yaml 配置文件,生成的 Homestead.yaml 配置文件文件位于当前 Homestead 目录:
// Mac/Linux... windows下使用git bash也使用下面的命令bash init.sh// Windows...init.bat
Homestead.yaml 文件中的 provider 键表示使用哪个 Vagrant 提供者:virtualbox、vmware_fushion、 vmware_workstation 或 parallels,你可以将其设置为自己喜欢的提供者,当然对大部分人来说也没得选:
provider: virtualbox
Homestead.yaml 文件中的 folders 属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹:
folders: - map: ~/Development to: /home/vagrant/Code
如果要开启 NFS,只需简单添加一个标识到同步文件夹配置:
folders: - map: ~/Development to: /home/vagrant/Code type: "nfs"
注:使用 NFS 的话,需要考虑安装 vagrant-bindfs 插件。该插件可用于在 Homestead 盒子中为文件和目录维护正确的用户/组权限。
你还可以通过 options 传递其他 Vagrant 支持的同步文件夹选项:
folders: - map: ~/Development to: /home/vagrant/Code type: "rsync" options: rsync__args: ["--verbose", "--archive", "--delete", "-zz"] rsync__exclude: ["node_modules"]
对 Nginx 不熟?没关系!通过 sites 属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml 中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:
sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public - map: firm.cn to: /home/vagrant/laravelapp/firm/public
如果你是在 Homestead 盒子启动之后进行了上述修改,需要运行 vagrant reload –provision 更新虚拟机上的 Nginx 配置。
不要忘记把 Nginx 站点配置中的域名添加到本地机器上的 hosts 文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于 /etc/hosts,在 Windows 上,位于 C:/Windows/System32/drivers/etc/hosts,添加方式如下:
192.168.10.10 firm.cn
确保 IP 地址和你的 Homestead.yaml 文件中列出的一致,一旦你将域名添加到 hosts 文件,就可以在浏览器中通过该域名访问站点了:
http://firm.cn
注:在真正可以访问之前之前还需要通过 Vagrant 启动虚拟机上的 Homestead 盒子。
配置好 Homestead.yaml 文件后,在 Homestead 目录下运行 vagrant up 命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点,初次启动需要花费一点时间进行初始化:
vagrant up
报错1:
蓝屏重启
没有关闭Hyper-V和VT-x冲突
控制面板→程序→启用或关闭Windows功能 将Hyper-V以及子项全部去掉勾选就行了。确定后记得重新启动
报错2:
Failed to connect to vagrantcloud-files-production.s3.amazonaws.com port 443: Timed out
Vagrant没有发现 laravel/homestead 这个Box虚拟机,这是因为版本的问题
进入Homestead目录下vim scripts/homestead.rb修改:config.vm.box_version = settings["version"] ||= ">= 0.4.0" 为 config.vm.box_version = settings["version"] ||= ">= 0"
报错3:
Path: C:/Users/Administrator/.vagrant.d/data/machine-index/index
进入上面提示的目录删除 index 和index.lock
启动之后,就可以在浏览器中访问配置的站点 http://firm.cn
No input file specified. 说明配置成功
要登录到该虚拟机,使用 vagrant ssh 命令;关闭该虚拟机,可以使用 vagrant halt 命令;销毁该虚拟机,可以使用 vagrant destroy –force 命令。
全局安装 Homestead 将会使每个项目共享同一个 Homestead 盒子,你还可以为每个项目单独安装 Homestead,这样就会在该项目下创建 Vagrantfile,允许其他人在该项目中执行 vagrant up 命令,在指定项目根目录下使用 Composer 执行安装命令如下:
composer require laravel/homestead --dev
这样就在项目中安装了 Homestead。Homestead 安装完成后,使用 make 命令生成 Vagrantfile 和 Homestead.yaml 文件,make 命令将会自动配置 Homestead.yaml 中的 sites 和 folders 属性。该命令执行方式如下:
Mac/Linux:
php vendor/bin/homestead make
Windows:
vendor/bin/homestead make或者vendor//bin//homestead make
接下来,在终端中运行 vagrant up 命令然后在浏览器中通过 http://homestead.app 访问站点。不要忘记在 /etc/hosts 文件中添加域名 homestead.app(已配置的话忽略)。
要想在文件系统的任意路径都能够运行 vagrant up 启动 Homestead 虚拟机,在 Mac/Linux 系统中,可以添加 Bash 函数到 ~/.bash_profile;在 Windows 系统上,需要添加“批处理”文件到 PATH。这些脚本允许你在系统的任意位置运行 Vagrant 命令,并且把命令执行位置指向 Homestead 的安装路径。
function homestead() { ( cd ~/Homestead && vagrant $* )}
确保将该函数中的 ~/Homestead 路径调整为指向实际的 Homestead 安装路径。这样你就可以在系统的任意位置运行 homestead up 或 homestead ssh 来启动/登录虚拟机
补充知识点:/etc/profile 和 ~/.bash_profile 都可以用来设置系统 PATH,不同之处在于前者是给系统超级用户使用,后者是给普通登录用户使用的,此外要让 ~/.bash_profile 修改后生效,有两种方法,一种是退出系统重新登录,一种是使用 source ~/.bash_profile 命令。
在系统的任意位置创建一个批处理文件 homestead.bat:
@echo offset cwd=%cd%set homesteadVagrant=C:/Homesteadcd /d %homesteadVagrant% && vagrant %*cd /d %cwd%set cwd=set homesteadVagrant=
你需要将脚本中实例路径 C:/Homestead 调整为 Homestead 实际安装路径。创建文件之后,添加文件路径到 PATH,这样你就可以在系统的任意位置运行 homestead up 或 homestead ssh 命令了。
你可以在 Homestead 目录下通过运行 vagrant ssh 以 SSH 方式连接到虚拟机。如果你设置了全部访问 Homestead,也可以在任意路径下通过 homestead ssh 登录到虚拟机。
如果你需要以更简捷的方式连接到 Homestead,可以为主机添加一个别名来快速连接到 Homestead 盒子,创建完别名后,可以使用 vm 命令从任何地方以 SSH 方式连接到 Homestead 虚拟机:
alias vm="ssh vagrant@127.0.0.1 -p 2222"
Homestead 默认已经在虚拟机中为 MySQL 和 Postgres 数据库做好了配置,更方便的是,这些配置值与 Laravel 的 .env 中默认提供的配置一致。
想要通过本地的 Navicat 或 Sequel Pro 连接到 Homestead 上的 MySQL 或 Postgres 数据库,可以通过新建连接来实现,主机 IP 都是 127.0.0.1,对于 MySQL 而言,端口号是 33060,对 Postgres 而言,端口号是 54320,用户名/密码是 homestead/secret
Homestead 支持多种框架,所以即使你没有使用 Laravel 的话,也可以使用 Homestead,例如,我们可以通过 symfony2 站点类型轻松添加一个 Symfony 应用:
sites: - map: symfony2.app to: /home/vagrant/Code/Symfony/web type: symfony2
目前支持的站点类型包括 apache、laravel、proxy、silverstripe、statamic、symfony2 和 symfony4。
Laravel 提供了很方便的方式来调度 Cron 任务:只需每分钟调度运行一次 Artisan 命令 schedule:run 即可。schedule:run 会检查定义在 App/Console/Kernel 类中定义的调度任务并判断运行哪些任务。
如果想要为某个 Homestead 站点运行 schedule:run 命令,需要在定义站点时设置 schedule 为 true:
sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public schedule: true
该站点的 Cron 任务会被定义在虚拟机的 /etc/cron.d 目录下:
有时候你可能希望和同事或客户分享自己当前的工作进度或成果
登录虚拟机运行命令
share firm.cn //配置的站点
运行完该命令之后,你就可以看到一个 Ngrok 界面出现,其中包含活动日志和分享站点所需的公开访问 URL:
如果你想要指定一个自定义的区域,子域名或者其他 Ngrok 运行时选项,可以将它们添加到 share 命令:
share homestead.app -region=us -subdomain=laravel
目前自定义域名只有付费用户才可以使用,所以 subdomain 会提示不可用。
以上就是winwin7之家小编给大家分享的关于在windows 系统下使用laravel安装homestead的操作方法!
以上就是winwin7之家小编给大家分享的关于在windows 系统下使用laravel安装homestead的操作方法!
分享到: