发布于 2015-03-14 15:50:11 | 671 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的精品教程,程序狗速度看过来!

Vagrant 创建虚拟化开发环境

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。


测试使用环境

MacOS 10.9.3
Windows,Linux,大同小异

准备

下载安装 VirtualBox

下载安装 Vagrant

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
 

Homestead 环境

Ubuntu 14.04
PHP 5.5
Nginx
MySQL
Postgres
Node (With Bower, Grunt, and Gulp)
Redis
Memcached
Beanstalkd
Laravel Envoy
Fabric + HipChat Extension
 

步骤

  1. 命令:vagrant box add laravel/homestead,这句会去下载一个box,需要一段时间,看网速
  2. 命令:git clone https://github.com/laravel/homestead.git Homestead,找一个目录用来存放虚拟机配置的去执行这句命令
  3. 编辑git clone后文件目录中的 Homestead.yaml 文件,一看就懂,懒得说

Homestead.yaml

 
ip: "192.168.10.10"
memory: 2048
cpus: 1
 
authorize: /Users/me/.ssh/id_rsa.pub
 
keys:
- /Users/me/.ssh/id_rsa
 
folders:
- map: /Users/me/Code
to: /home/vagrant/Code
 
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
 
 

增加站点

  1. Homestead 中新增一个domain的步骤是
  2. 在homestead.ymal 文件里面编辑好sites和folders这两个项目
  3. (此步骤貌似可选)执行 vagrant destroy,vagrant provision
  4. 进入vm ssh ,执行serve domain.app /home/vagrant/Code/path/to/public/directory

虚拟机操作

  1. 开机:vagrant up
  2. 关机:vagrant halt
  3. 销毁:vagrant destroy
  4. 以上命令需在Homestead目录下执行

访问网站

地址:http://homestead.app:8000

域名需要在本机绑定hosts,127.0.0.1 homestead.app

连接虚拟机ssh

命令:vagrant ssh

连接虚拟机Mysql

地址:127.0.0.1:33060,用户名:homestead,密码:secret

关键的端口映射列表

SSH: 2222 -> Forwards To 22
HTTP: 8000 -> Forwards To 80
MySQL: 33060 -> Forwards To 3306
Postgres: 54320 -> Forwards To 5432
 
 

经验

如果因为网络问题运行 vagrant box add laravel/homestead 的时候太慢了无法下载,就到 VagrantCloud下载下来,再运行 vagrant box add laravel/homestead ./DownloadPath/BoxHaveDownloadedPath.box 导入就可以了

啃爹的坑记录:

  1. homestead 的yaml 配置文件是不能用 tab 的,必须用空格,这是记录 <http://stackoverflow.com/questions/24189128/cant-start-vagrant-after-laravel-homestead-installation-vagrant-up>
  2. 经过长达18个小时的调试,终于找出了为什么 default: Warning: Connection timeout. Retrying... 一直卡住的原因,在我关闭wifi的时候一切都是正常的,startServer alias运行也很快,但是一旦接上光企光猫的时候就不行了,奇慢无比。回到住的地方又一切正常,为这件事我折腾了一整天睡不好,结果想到了可能不是我的 系统问题,而是网络问题,又想不清楚到底是网络哪个问题,闭眼想了好久,猜有可能是dns的问题,因为我本地的hosts改了之后解析到我本机很慢很慢, 我猜这个包会去路由那里卡住很久,所以可能是dns的问题,因为dns是写着网关地址的,于是我改成了上海的电信dns,然后就好了!!!装了一天的系 统,结果是因为这样一个问题!!!无语!!!电信的设备不知道做了什么手脚,里面肯定有问题!

开发经验

  • 从laracasts上这一集https://laracasts.com/lessons/testing-email-in-laravel看到了mailercatcher
  • 记录一些笔记
  • 在mac上的安装,参考地址 http://mailcatcher.me/
gem install mailcatcher
mailcatcher
Go to http://localhost:1080/
Send mail through smtp://localhost:1025
 
 

在homestead上安装(推荐,方便调试开发),参考地址:http://blog.enge.me/post/installing-mailcatcher-in-laravel-homestead

 
// Install MailCatcher
$ sudo apt-get install ruby1.9.1-dev libsqlite3-dev
$ sudo gem install mailcatcher
$ mailcatcher --ip 192.168.10.10 #这个IP是根据Homestead.yaml 文件中的设置来看的
 

杀死进程,好像没办法正常结束,可能可以 mailcatcher –foreground 跑在控制台下,然后可以用 controll + c 来控制中断,但是我没有实验,直接 kill 掉,参考链接:http://stackoverflow.com/questions/24830534/killing-mailcatcher- somethings-using-port-1025

Linux:
ps aux | grep mialcatcher
sudo kill -9 对应pid
sudo lsof -nP -iTCP:1025 -sTCP:LISTEN #查看进程是否还活着
 
MacOs:
sudo lsof -nP -iTCP:1025 -sTCP:LISTEN
sudo kill -9 对应pid


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务