Position Absolute

入门的提示,流行环境进化

我一直在使用XAMPP为我的本地灯泡堆栈。它运作良好,但这绝对没有我的现场生产服务器。输入流浪汉,“轻松”可重复的开发堆栈。

如果您可以为您的新开发人员和繁荣提供食谱,那么他们的应用环境准备就绪不会是完美的,他们可以立即到达代码。没有更加摆动主机,memcache,手动PHP模块启用。只需2或3个命令和您的完成。自从我仍然是非常新的流浪汉,我不会深入抚摸,但我以为我可以给你几个技巧让你轻松开始。

视频教程

关于流浪汉的一个好事是他们的 介绍视频 这有助于您自动化您的第一灯堆栈。坏消息是,虽然它会给你90%的人,但是流浪者改变了很多,因为那段视频是这样的,你必须做一些测试来让一切都工作。

这些幻灯片 也是一个很好的起点,它有点达到迄今为止,编码风格更优雅。

摆弄主人

默认情况下,Vagrant将使用特殊端口将VM转发到127.0.0.1(您选择的任何端口)。在您身边,您无法使用主机前进127.0.0.1:8080(例如)devomain.com。 Hosts文件仅适用于端口的DNS,因此它不会帮助您。您当然可以使用防火墙应用等来转发端口等。

但是最简单的事情就是没有,把你的域放在主机文件中,然后只能键入devomain:8080,自从您已经将该域转发到主机文件中的localhost以来,它将工作。

MySQL安装

当您使用流浪者提供的默认Ubuntu框安装MySQL时,有一个错误,因为某种原因厨师尝试在MySQL准备就绪之前进行连接,并且它将抛出错误。

Error executing action `run` on resource 'execute[mysql-install-privileges]'
STDERR: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

幸运的是,在他们得到的工作之前,有一块简单的猴子补丁。转到MySQL配方并编辑Server.rb文件

139 subscribes :run, resources("template[#{grants_path}]"), :immediately
140 ignore_failure true # "Can't connect to MySQL" monkeyfix

关于这个错误的信息没有太多的信息,但如果你看起来有点 这些家伙 that talk about it.

php和它的模块

首先,不要忘记添加

include_recipe "apache2::mod_php5"

或者您的文件无法在浏览器中加载,因此由于标题不起作用,因此您将下载它们。实际上思考Apache,你可能应该包括所有这些:

include_recipe "apache2"
include_recipe "apache2::mod_php5"
include_recipe "apache2::mod_rewrite"
include_recipe "apache2::mod_deflate"
include_recipe "apache2::mod_headers"

至于PHP,不要忘记添加您需要的所有模块,您的列表应该看起来像:

include_recipe "php"
include_recipe "php::module_apc"
include_recipe "php::module_memcache"
include_recipe "php::module_curl"
include_recipe "php::module_mcrypt"

不幸的是,PHP Cookbook不包括所有PHP模块的配方,例如,Mcrypt不在那里,您必须复制模块配方并自己添加您的自定义模块。幸运的是,它非常直接,代码很简单,这里我如何实现mcrypt:

pkg = value_for_platform(
    [ "centos", "redhat", "fedora" ] => {"default" => "php5-mcrypt"}, 
    "default" => "php5-mcrypt"
  )
 
package pkg do
  action :install
end

在该公约之后,您应该可以获得所有工作的PHP模块。

文件模板

关于流浪汉的一个好事是你可以从VM中的任何文件模板。我使用此功能来重写/ etc / hosts以获取我需要的内容。

在你的食谱上你这样做:

template "/etc/hosts" do
	source "hosts.conf.erb"
	owner "root"
	group "root"
	mode 0644
end

然后在您的hosts.conf.erb中,您可以使用Ruby使用该文件,您还可以访问Vagrant的各种变量。

流浪汉,一种令人印象深刻的技术

VAGRANT令人印象深刻,很难找到良好的最新教程,我​​们经常被应该工作的代码疑惑,而不是因为文章写完以来它改变了。希望这对技巧可以帮助您获得环境运行!