Laravel 致力于让整个 PHP 开发过程变得让人愉悦,包括本地开发环境,为此官方为咱们提供了一整套本地开发环境 —— Laravel Homestead。php
Laravel Homestead 是一个打包好各类 Laravel 开发所须要的工具及环境的 Vagrant 盒子(Vagrant 提供了一个便捷的方式来管理和设置虚拟机),该盒子为咱们提供了优秀的开发环境,有了它,咱们再也不须要在本地环境安装 PHP、HHVM、Web服务器以及其它工具软件,咱们也彻底不用再担忧误操做搞乱操做系统 —— 由于 Vagrant 盒子是一次性的,若是出现错误,能够在数分钟内销毁并从新建立该 Vagrant 盒子!css
Homestead能够运行在 Windows、Mac 以及 Linux 系统上,其中已经安装好了Nginx、PHP7.0、MySQL、Postgres、Redis、Memcached、Node以及不少其它开发 Laravel 应用所须要的东西。html
注:若是你使用的是Windows,须要开启系统的硬件虚拟化(VT-x),这一般能够经过BIOS来开启。java
1.下载GitHub for Windowsnode
https://windows.github.com/mysql
建议你们尽可能安装当前最新版本的 PHPlinux
1.下载PHPnginx
http://windows.php.net/download/laravel
2.解压目录git
个人路径D:\php
3.添加环境变量
右键计算机->高级系统设置->环境变量->系统变量->PATH
C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\nodejs\;D:\php;C:\ProgramData\ComposerSetup\bin
4.设置php.ini
进入 PHP 安装目录(例如 D:\php
)。找到 php.ini-development
文件并复制一份到当前目录,重命名为 php.ini
,修改如下配置
去掉extension=php_mbstring.dll
前面的分号(888 行左右)
去掉extension=php_openssl.dll
前面的分号(893 行左右)
去掉extension_dir = "ext"
前面的分号(736 行左右)
5.使环境变量生效
重启explorer.exe
1.下载Laravel
http://www.golaravel.com/download/
2.解压目录
个人路径D:\laravel-v5.1.4
3.启动Laravel
d:
cd laravel-v5.1.4 D:\laravel-v5.1.4>php artisan serve Laravel development server started on http://localhost:8000/
在浏览器中访问http://localhost:8000/
artisan
的 serve
命令还支持两个参数:
host
设置主机地址
port
设置 web server 监听的端口号
例如:php artisan serve --port=8888
1.下载Composer-Setup.exe
https://getcomposer.org/doc/00-intro.md#installation-windows
2.配置Composer
Loading composer repositories with package information Installing dependencies (including require-dev) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”
若是安装过程提示报错为缺乏CA证书,下载cacert.pem
到自定义路径
http://curl.haxx.se/docs/caextract.html
而后修改php.ini文件(1983行左右)
openssl.cafile=D:\php\verify\cacert.pem
3.测试Composer
composer -V Composer version 1.0-dev (d79427f1a7b15e8f4d46ce8124a4d0c58ba1479c) 2016-01-27 13:01:22
windows安装可参考
http://pkg.phpcomposer.com/
在使用 Homestead 以前,须要先安装 Virtual Box/VMWare 和 Vagrant,全部这些软件包都为经常使用操做系统提供了一个便于使用的可视化安装器。
安装完之后重启一下,再打开cmd
vagrant --version
Vagrant 1.8.1
经过命令
VirtualBox/VMWare 和 Vagrant 安装好了以后,在终端中使用能以下命令将 laravel/homesterad
添加到 Vagrant 中。下载该盒子将会花费一些时间,时间长短主要取决于你的网络链接速度:
vagrant box add laravel/homestead
若是上述命令执行失败,可使用 Vagrant 老版本的方式,这须要输入完整的 URL:
vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead
能够自动下载homestead的vbox,然而国内网络你们懂的,龟速。
建议本身有vps的同窗,在vps上经过
wget -O homestead.box https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.4.1/providers/virtualbox.box
手动下载后,再从vps上将box下载到本地,或者能够试试用迅雷下载。总之,想办法把这个box文件下载下来,而后经过如下命令添加到vagrant
vagrant box add laravel/homestead file:///d:/homestead.box
经过 GitHub 安装 Homestead命令行工具
你还能够经过简单克隆仓库代码来实现 Homestead 安装。将仓库克隆到用户目录下的 Homestead 目录,这样 Homestead 盒子就能够会做为全部其余 Laravel 项目的主机:
cd ~ git clone https://github.com/laravel/homestead.git Homestead
克隆完成后,在 Homestead 目录下运行 bash init.sh
命令来建立 Homestead.yaml
配置文件,Homestead.yaml
配置文件文件位于 ~/.homestead
目录:
bash init.sh
composer install
在Homestead目录执行
php homestead
Laravel Homestead version 3.0.1
设置 Provider
Homestead.yaml
文件中的 provider
键表示使用哪一个 Vagrant 提供者:virtualbox
、vmware_fushion
或者vmware_workstation
,你能够将其设置为本身喜欢的提供者:
provider: virtualbox
配置共享文件夹
推荐:使用Vagrant在Windows平台搭建嵌入式Linux开发环境(2)Tftpd服务器搭建
一、获取root权限 Ubuntu默认使用user用户登陆,而开发大部分状况下须要用到root权限,使用命令切换用户到超级权限用户root sudo su 二、下载安装
C:\Users\stone\.homestead\Homestead.yaml
Homestead.yaml
文件中的 folders
属性列出了全部主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,若是有须要的话,你能够配置多个共享文件夹(通常一个就够了):
folders:
- map: d:/app
to: /home/vagrant/Code
若是要开启 NFS,只需简单添加一个标识到同步文件夹配置:
folders:
- map: ~/Code
to: /home/vagrant/Code
type: "nfs"
配置 Nginx 站点
对 Nginx 不熟?没问题,经过 sites
属性你能够方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml
中默认已经配置了一个示例站点。和共享文件夹同样,你能够配置多个站点:
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
你还能够经过设置 hhvm
为 true
让全部的 Homestead 站点使用 HHVM:
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public hhvm: true
默认状况下,每一个站点均可以经过 HTTP(端口号:8000)和 HTTPS(端口号:44300)进行访问。
修改Hosts文件|访问网站
不要忘记把 Nginx 站点配置中的域名添加到本地机器上的 hosts
文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于 /etc/hosts
,在 Windows 上,位于C:\Windows\System32\drivers\etc\hosts
,添加方式以下:
域名须要在本机绑定hosts:192.168.10.10 homestead.app
确保 IP 地址和你的 Homestead.yaml
文件中列出的一致,一旦你将域名放置到 hosts 文件,就能够在浏览器中经过该域名访问站点了!
http://homestead.app
配置好 Homestead.yaml
文件后,在 Homestead 目录下运行 vagrant up
命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点。
销毁该机器,可使用 vagrant destroy –force
vagrant up Box 'laravel/homestead' could not be found
问题解决办法
Box 'laravel/homestead' could not be found
收到在homestead目录下建立metadata.json文件,内容为
{
"name": "laravel/homestead",
"versions": [{
"version": "0.4.1",
"providers": [{
"name": "virtualbox",
"url": "file:///F:/VirtualBox/homestead.box"
}]
}]
}
Then run vagrant box add metadata.json
This will install the box with a version and can be confirmed by:
$ vagrant box list
laravel/homestead (virtualbox, 0.4.0)
You will now be able to perform vagrant up using your local box.
Default login and password is just vagrant.
参考:
http://stackoverflow.com/questions/34946837/box-laravel-homestead-could-not-be-found
GuestAdditions versions on your host (5.0.14) and guest (5.0.6) do not match.问题解决办法
This works for me in linux, I think this will solve the problem in windows as well.
Quick Solution for Failed to mount folders in Linux guest issue.
Add the following line to your Homestead/Vagrantfile:
config.vbguest.auto_update = false
Your d:\VirtualBox/Homestead/Homestead/Vagrantfile should looks like this:
/...
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# To avoid install and uninstall VBoxGuessAdditions during vagrant provisioning. config.vbguest.auto_update = false .../
Save it and execute
$ vagrant destroy --force $ vagrant up
http://stackoverflow.com/questions/30175290/laravel-homestead-vagrant-vboxsf-not-available-issue
全局安装 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
接下来,在终端中运行 vagrant up
命令而后在浏览器中经过 http://homestead.app
访问站点。不要忘记在/etc/hosts
文件中添加域名 homestead.app
。
有时候你想要在文件系统的任意位置运行 vagrant up
启动 Homestead 虚拟机,要实现这一目的须要将 Homestead 安装目录添加到系统路径。这样你就能够在系统的任意位置运行 homestead
或 homestead ssh
来启动/登陆虚拟机。
你能够在 Homestead 目录下经过运行 vagrant ssh
以 SSH 方式链接到虚拟机
vagrant ssh
可是若是你须要以更平滑的方式链接到 Homestead,能够为主机添加一个别名来快速链接到 Homestead 盒子,建立完别名后,可使用 vm
命令从任何地方以 SSH 方式链接到 Homestead 虚拟机:
alias vm="ssh vagrant@127.0.0.1 -p 2222"
用户名和密码: vagrant.
默认已经在 Homestead 虚拟机中为 MySQL 和 Postgres 数据库作好了配置,更方便的是,Laravel的 .env
还为链接 Homestead 数据库作好了配置。
想要经过本地的 Navicat 或 Sequel Pro 链接到 Homestead 上的 MySQL 或 Postgres 数据库,能够经过新建链接来实现,主机 IP 都是 127.0.0.1
,对于 MySQL 而言,端口号是33060
,对 Postgres 而言,端口号是54320
,用户名/密码是 homestead
/secret
。
注意:只有从本地链接 Homestead 的数据库时才能使用这些非标准的端口,在 Homestead 虚拟机中仍是应该使用默认的 3306 和 5432 端口进行数据库链接配置。
Homestead 虚拟机在运行时,可能须要添加额外 Laravel 应用到 Nginx 站点。若是是在单个 Homestead 环境中运行多个 Laravel 应用,添加站点很简单,只需将站点添加到 Homestead.yaml
文件,而后在 Homestead 目录中运行vagrant provision
命令便可。
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
目录下。
默认状况下,Homestead 端口转发配置以下:
转发更多端口
若是你想要为 Vagrant 盒子添加更多端口转发,作以下转发协议设置便可:
ports:
- send: 93000 to: 9300 - send: 7777 to: 777 protocol: udp
SensioLabs 开发的 Blackfire Profiler 能自动收集代码执行数据,好比内存、CPU 时间、硬盘 I/O 等,Homestead 使得在应用中使用该性能分析器变得垂手可得。
Blackfire Profiler 须要的软件包已经预安装到 Homestead 盒子,你只须要在 Homestead.yaml
文件中设置 Blackfire Server ID 和 token:
blackfire:
- id: your-server-id token: your-server-token client-id: your-client-id client-token: your-client-token
配置好 Blackfire 的凭证以后,在 Homestead 目录下使用 vagrant provision
从新启动 Homestead。在此以前,确保你已经查看过 Blackfire 文档了解了如何在浏览器安装相应的 Blackfire 扩展。
相关密码
Ubuntu
用户名:vagrant
密码:vagrant
mysql密码
homestead / secret
root / secret
虚拟机操做
在不进入虚拟机的状况下,还可使用下面的命令对 虚拟机进行管理:
vagrant up (启动虚拟机)
vagrant halt (关闭虚拟机——对应就是关机)
vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,能够执行恢复操做后继续使用)
vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
vagrant destroy (删除虚拟机,删除后在当前虚拟机所作进行的除开Vagrantfile中的配置都不会保留)
以上命令需在Homestead目录下执行
参考:
http://stackoverflow.com/questions/26655516/how-to-install-manually-downloaded-box-for-vagrant
http://stackoverflow.com/questions/34946837/box-laravel-homestead-could-not-be-found
http://stackoverflow.com/questions/25981735/laravel-homestead-stuck-on-vm-login
http://os.51cto.com/art/201507/484834.htm
http://yaojinbu.com/post/2749.html
http://x-bird.qiubs.com/laravel-homestead-intro.html?utm_source=tuicool&utm_medium=referral
http://blog.csdn.net/small_rice_/article/details/45366299
http://blog.csdn.net/markely/article/details/49585887
http://www.ekan001.com/articles/40
http://www.tuicool.com/articles/rIVJRvm