我正在尝试通过 Vagrant 创建一个简单的 LAMP,它可以支持存储在 /var/www 中的多个网站。这可以通过虚拟主机来完成。
每个项目都应该以 .dev 结尾
无法忍受创建每个构建都支持一个项目的想法,每个构建都支持一个数据库。
我不能用 Puppet 或 Chef 做头或尾。我宁愿避免这种情况,但很高兴从回购中克隆它。
我需要一些建议或指出正确的方向。
谢谢
请参阅下面的更新信息
我一直在寻找如何改进我的 Web 开发工作流程的方法。我目前在主题项目等中使用各种工具和应用程序,例如 LAMP、Webmin 和 Filezilla。然后我发现了这个名为Vagrant的神奇工具的存在,在用我的项目对其进行测试后,我爱上了它,并决定将它集成到我当前的本地 Web 开发环境中。因此,我进一步挖掘并搜索了如何使用我选择的基本框使用Vagrant创建和设置Multi Vhosts设置的可能性。搜索 Google 会返回许多结果,但我决定点击 stackoverflow 中的链接并找到这个问题。我按照中提到的链接Ubuntu 12.04 Precise Pangolin 32-bit
Dimitri Kouvdis
的答案,这是一个 Github Repo。我已经对其进行了测试,并遇到了与Dimitri Kouvdis
也遇到的非常相似的问题。但是现在已经解决了,多亏了他的评论,我才成功。但是在我寻找具有多个虚拟支持的理想 Vagrant Box 的过程中,我从 Github 搜索并测试了几个存储库,直到找到适合我的一个,并且我确实找到了一个。我寻找这些存储库的原因是我还不知道如何使用 Puppet 和 Chef 来配置我自己的 Dev Server,这就是原因。
onema / vagrant-lamp-development
https://github.com/onema/vagrant-lamp-development
测试 Github RepoDimitri Kouvdis
提到过,我遇到了几个问题,在那段时间我停止了工作,并决定从 Github 搜索类似的 repo。我找到了几个并测试了其中一些,包括 Nino Paolo 的 Repo ( https://github.com/paolooo/vagrant-lamp )。特别是在vagrant up
. 我决定再次搜索另一个,直到找到并成功设置onema的 repo。我最终决定在我的 Web 开发实践环境中使用并将此解决方案集成到我当前的工作流程中。我开始喜欢onema
's repo 因为;
正如我上面提到的,通过阅读并遵循从它的 Github Repo 页面中找到的说明,设置很容易(特别是对于像我这样的新手和自学者)。- https://github.com/onema/vagrant-lamp-development。您可以选择使用下载的zip 文件或选择用于git clone https://github.com/onema/vagrant-lamp-development
将Vagrant
文件复制到本地驱动器。
git
基本的 Vagrant 和 VirtualBox 设置。从Github Page阅读说明,并执行以下步骤。通过我的设置,我已经编辑Vagrantile
了一点。在line: 70
原始文件中,我通过向以下位置添加注释来Vagranfle
禁用 NFS#
config.vm.synced_folder "~/Sites", "/vagrant", nfs: true
所以,它现在看起来像这样......
#config.vm.synced_folder "~/Sites", "/vagrant", nfs: true
然后注释掉...
#config.vm.synced_folder "~/Sites", "/vagrant"
line: 140
从原Vagrantfile
所以,它现在看起来像这样......
config.vm.synced_folder "~/Sites", "/vagrant"
我这样做是因为在我的机器中vagrant up
,它会抛出几个我不理解的与 NFS 相关的错误。
现在,为了这个例子,从它的 Repo Page 的例子中,创建一个文件夹,你必须命名它Sites
。这应该位于您的用户帐户的文件夹根目录或您的主文件夹中。/home/your-user-account-home-folder/Sites
就我而言,(注意大写的 S)
/home/gary/Sites
A.
创建您的示例 dev-site/vhost 并创建一个名为的新文件夹wordpress.dev
,并将其作为 vhost 的文档根目录wordpress.dev
然后在此处添加您的项目文件。见下面的例子;
/home/gary/Sites/wordpress.dev
B.
现在,为您新创建的虚拟主机创建一个简单的启动页面,以便在您从浏览器访问开发站点时确认您的配置正在将您重定向到目标虚拟主机根文件夹。当然,当您的配置正确时,您会看到启动页面。这就是我制作启动页面的方式。
我创建了一个index.php
文件并在其中放入了一些代码,就像这样;
<?php echo "Success!!! Your wordpress.dev looks fine"; ?>
因此,当您成功到达您的虚拟主机时,您会收到消息Success!!! Your wordpress.dev looks fine
现在,将您的 Vagrant Box 的 IP 地址添加到您的hosts
文件中,并将您的开发站点映射wordpress.dev
到它,如下所示;
192.168.50.4 wordpress.dev
注意:192.168.50.4
是 Vagrant Box 的默认配置 IP 地址,您可以根据自己的喜好更改此地址并更新您的hosts
文件。
就我而言,我是这样说的,
A
10.10.10.10 wordpress.dev
- 在我的主机文件中,而
Bconfig.vm.network "private_network", ip: "10.10.10.10"
在我的流浪文件中。您可以通过查看您的内部并在此行下方导航
来找到此设置,Vagrantfile
# Host-Only networking required for nfs shares
然后从那里更改ip:
设置并更新您的hosts
文件以匹配 IP。
再次编辑Vagrantfile
并添加您的虚拟主机设置,指向您的开发站点文件夹,像这样添加这些代码块;
:wordpress => {
:name => "wordpress",
:host => "wordpress.dev",
:aliases => ["wordpress.dev"],
:docroot => "/wordpress.dev"
}
当您将代码添加到 origVagrantfile
时,它应该如下所示;
:vhost => {
:localhost => {
:name => "localhost",
:host => "localhost",
:aliases => ["localhost.web", "dev.localhost-static.web"],
:docroot => ""
},
:wordpress => {
:name => "wordpress",
:host => "wordpress.dev",
:aliases => ["wordpress.dev"],
:docroot => "/wordpress.dev"
}
所以你Vagrantfile
现在看起来像下面这个;注意右花括号右上方,
的w
逗号。里面应该有一个逗号,当你添加另一个虚拟主机时,你应该在 wordpress的右花括号右侧添加另一个逗号。:wordpress
}
}
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.host_name = "localhost"
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = "cookbooks"
chef.add_recipe "vagrant_main"
#####################################
# MONGODB
# https://github.com/edelight/chef-cookbooks
#####################################
chef.add_recipe "mongodb::10gen_repo"
chef.add_recipe "mongodb::default"
#####################################
# REDIS
# https://github.com/phlipper/chef-redis
#####################################
chef.add_recipe "redis"
chef.json.merge!({
:mysql => {
:server_root_password => "root",
:server_debian_password => "root",
:server_repl_password => "root"
},
#####################################
# YOU WILL NEED TO ADD THESE DOMAINS
# TO THE LIST OF HOSTS IN YOUR LOCAL
# ENVIRONMENT FOR THESE TO BE PROPERLY
# ROUTED
#####################################
:vhost => {
:localhost => {
:name => "localhost",
:host => "localhost",
:aliases => ["localhost.web", "dev.localhost-static.web"],
:docroot => ""
},
:symfony => {
:name => "symfony",
:host => "symfony.web",
:aliases => ["symfony"],
:docroot => "/symfony/web"
},
:wordpress => {
:name => "wordpress",
:host => "wordpress.dev",
:aliases => ["wordpress"],
:docroot => "/wordpress.dev"
}
}
})
end
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3307
##########################################################################
# UNCOMMENT IF NFS IS DISABLED
##########################################################################
config.vm.synced_folder "~/Sites", "/vagrant"
##########################################################################
# NFS
# Enable if you have performance issues with large projects.
# see the following links for more info:
# http://forum.symfony-project.org/viewtopic.php?t=52241&p=167041#p147056
# http://docs.vagrantup.com/v2/synced-folders/nfs.html
# http://www.phase2technology.com/blog/vagrant-and-nfs/
###########################################################################
# Host-Only networking required for nfs shares
config.vm.network "private_network", ip: "10.10.10.10"
#config.vm.synced_folder "~/Sites", "/vagrant", nfs: true
config.vm.provider :virtualbox do |vb|
# # Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "512"]
end
end
ctrl + alt + t
并输入 cd vagrant-lamp-development
以将目录更改为vagrant-lamp-development
文件夹并输入,vagrant up
要添加新虚拟主机,只需在其中创建一个新文件夹/home/your-home-folder/Sites/new-project-folder
,然后...
重复步骤 3B、4A、5
如果您Vagrantfle
在 VM Box运行时进行了更改或添加了 Vhost,请在终端中键入 ..
vagrant provision
以使更改生效。
如果您Vagrantfile
在 VM Box关闭时进行了更改或添加了虚拟主机,请在您的终端中键入 ...
vagrant up --provision
以使更改生效。
注意:本Vagrantfile
指南中使用的将下载一个64-bit Precise Pangolin Basebox Base Box
,您可以32-bit Precise Pangolin Basebox
通过将配置从Vagrantfile
.
我是这样做的,因为我已经下载了我的 32 位基础盒。于是我把它改成了32位,这样就不用再下载了。
改变...
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
到
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
Supports Multiple Vhosts
以下是如何添加新的vhosts
创建一个.json
与您所需的开发站点名称匹配的新文件,例如:wordpress.dev
in
vagrant-lamp/data_bags/sites
所以它应该看起来像......
vagrant-lamp/data_bags/sites/wordpress.json
编辑新创建的文件wordpress.json
并添加以下内容(仅作为示例);
{
"id": "wordpress",
"host": "wordpress.dev",
"aliases": [
"www.wordpress.dev"
]
}
wordpress.dev
在里面创建一个名为的新文件夹vagrant-lamp/public
所以它看起来像......
vagrant-lamp/public/wordpress.dev
编辑您的hosts
文件以添加和映射192.168.33.10``wordpress.dev
所以它应该看起来像这样......
192.168.33.10 wordpress.dev
你很高兴... 启动 vagrant 并键入vagrant up --provision
,如果该框已关闭
如果在您执行该过程时该框已打开,则vagrant provision
改为键入。
在此之后,启动您的浏览器并测试您的配置,浏览到http://wordpress.dev
.
确保将一些索引文件放在那里。
伙计们,我的 Linux Mint 13(基于 Ubuntu 12.04)开发盒坏了。这就是为什么我不得不再次从头开始重新安装我的操作系统(我的坏...使用假 RAID 并且没有备份)。但是这一次,我使用了基于 Ubuntu 14.0.4 LTS 的 Linux Mint 17。
所以我从头开始重新安装了所有东西,并快速设置了我的 Web 开发环境。但事实证明,我之前使用 vagrant 的工作设置不再有效。因此,我搜索了有关如何设置另一个可与 Ubuntu 14.04 LTS 一起使用的 Web 开发环境的解决方案。幸运的是,我找到了一个使用另一个 Github repo 的工作设置,称为CPT Server
所以这就是你设置它的方式。
vagrant up
就是这样!第一次启动需要很长时间。
只需编辑 config/config.yaml 并转到文件的最底部。查找vhost:
行并插入您的新虚拟主机,如下所示:
ServerName: mydevsite.dev
ServerAlias: mydevsite.dev
DocumentRoot: /var/www/mydevsite.dev
ServerAdmin: webmaster@localhost
然后在里面创建一个新文件夹www
并将其命名为与 ServerName 或 DocumentRoot 文件夹匹配mydevsite.dev
如果您在 vagrant 运行时添加了新主机,请执行此操作;vagrant provision
如果您在 vagrant box 运行时修改了 config.yaml 的上半部分,请执行此操作;vagrant reload --provision
不要忘记更新主机的 hosts 文件,将您的 vhost 指向 vagrant 的 ip。
就是这样了。
你也可以使用这个:
https://github.com/paolooo/vagrant-lamp
你可以检查一下。
最简单直接的 Vagrant 设置
https://github.com/fideloper/Vaprobash
观看“Apache 虚拟主机配置”视频以快速开始创建虚拟主机
不要忘记在安装之前取消注释您喜欢的数据库类型:)
奖励:我可以在几秒钟内通过 Sequel Pro 连接到 db 的唯一流浪设置