Laravel 致力于让整个 PHP 开发过程变得让人愉悦,包括本地开发环境,为此官方为我们提供了一整套本地开发环境 —— Laravel Homestead。
Laravel Homestead 是一个打包好各种 Laravel 开发所需要的工具及环境的 Vagrant 盒子(Vagrant 提供了一个便捷的方式来管理和设置虚拟机),该盒子为我们提供了优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP、HHVM、Web服务器以及其它工具软件,我们也完全不用再担心误 *** 作搞乱 *** 作系统 —— 因为 Vagrant 盒子是一次性的,如果出现错误,可以在数分钟内销毁并重新创建该 Vagrant 盒子!
Homestead可以运行在 Windows、Mac 以及 Linux 系统上,其中已经安装好了Nginx、PHP7.0、MySQL、Postgres、Redis、Memcached、Node以及很多其它开发 Laravel 应用所需要的东西。
预装软件注:如果你使用的是Windows,需要开启系统的硬件虚拟化(VT-x),这通常可以通过BIOS来开启。
- Ubuntu 14.04
- Git
- PHP 7.0
- HHVM
- Xdebug
- Nginx
- MySQL
- SQLite 3
- Postgres
- Composer
- Node(With PM2, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Blackfire Profiler
- Git
- PHP
- Laravel
- Composer
- Vagrant
- VirtualBox
1.下载GitHub for Windows
https://windows.github.com/
安装php建议大家尽量安装当前最新版本的 PHP
1.下载PHP
http://windows.php.net/download/
2.解压目录
我的路径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/
2、安装 & 设置 准备工作- VirtualBox 虚拟机,基础依赖
- Vagrant 基于VirtualBox或vmware的虚拟化环境部署工具,可以将一个虚拟机打包(简称vbox)给别人。
- Homestead laravel官方vbox,集成环境以及一套特制的命令行工具。
- xshell 这是一款windows下的ssh & shell工具,同类的有securecrt、putty等。
在使用 Homestead 之前,需要先安装 Virtual Box/VMWare 和 Vagrant,所有这些软件包都为常用 *** 作系统提供了一个便于使用的可视化安装器。
安装完以后重启一下,再打开cmd
vagrant --version
Vagrant 1.8.1
下载安装 Homestead Vagrant 盒子
通过命令
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
配置 Homestead
设置 Provider
Homestead.yaml
文件中的 provider
键表示使用哪个 Vagrant 提供者:virtualbox
、vmware_fushion
或者vmware_workstation
,你可以将其设置为自己喜欢的提供者:
provider: virtualbox
配置共享文件夹
推荐:使用Vagrant在Windows平台搭建嵌入式Linux开发环境(2)Tftpd服务器搭建
1、获取root权限 Ubuntu默认使用user用户登录,而开发大部分情况下需要用到root权限,使用命令切换用户到超级权限用户root sudo su 2、下载安装
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
启动 Vagrant Box
配置好 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 盒子,你还可以为每个项目单独安装 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"可以通过virtualbox打开虚拟机
用户名和密码: 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
命令即可。
- Homestead 中新增一个domain的步骤是
- 在homestead.ymal 文件里面编辑好sites和folders这两个项目
- 执行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 端口转发配置如下:
- 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
转发更多端口
如果你想要为 Vagrant 盒子添加更多端口转发,做如下转发协议设置即可:
ports: - send: 93000 to: 9300 - send: 7777 to: 777 protocol: udp4、使用 Blackfire Profiler 进行性能分析
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)