我正在尝试通过Vagrant创建一个简单的LAMP,它可以支持存储在/ var / www中的多个网站。这可以通过vhosts来完成。
每个项目都应以.dev
结尾无法创建每个支持一个项目的构建,每个构建都有一个数据库。
我不能用木偶或厨师做头或尾。我宁愿避免这种情况,但很乐意从回购中克隆它。
我需要一些建议或指出正确的方向。
由于
答案 0 :(得分:15)
请参阅下面的更新信息
我一直在寻找如何改进网络开发工作流程的方法。我目前正在使用各种工具和应用程序,如主题项目中的LAMP,Webmin和Filezilla等。然后我发现了这个名为 Vagrant 的神奇工具的存在,在用我的项目测试之后我爱上了它并决定将它集成到我当前的本地web开发环境中。因此,我进一步挖掘并使用我选择的基本框Ubuntu 12.04 Precise Pangolin 32-bit
搜索了如何使用 Vagrant 创建和设置 Multi Vhosts 设置的可能性。搜索Google会返回很多结果,但我决定点击stackoverflow中的链接并找到了这个问题。我按照Dimitri Kouvdis
的回答中提到的链接,这是一个Github回购。我对它进行了测试,遇到了与Dimitri Kouvdis
非常相似的问题。但是现在它已经解决了,感谢他的评论,我让它成功了。但是在我寻找理想的 Vagrant Box with Multiple Virtual Support 的过程中,我搜索并测试了几个来自Github的回购,直到我找到了合适的一个,我做了找到一个。我之所以追捕这些回购,是因为我还不知道如何使用Puppet和Chef来配置我自己的开发服务器,这就是原因。
onema / vagrant-lamp-development
https://github.com/onema/vagrant-lamp-development
测试Github Repo Dimitri Kouvdis
已经提到过,我遇到了几个问题,在那段时间我停止了工作并决定从Github搜索类似的回购。我发现了几个,并测试了其中一些,包括Nino Paolo&#Repo(https://github.com/paolooo/vagrant-lamp)。我在vagrant up
期间特意再次遇到了几个问题。我再次决定搜索另一个,直到我找到并成功设置onema的回购。我最终决定在我的Web开发实践环境中使用并将此解决方案集成到我当前的工作流程中。我开始喜欢onema
的回购,因为;
正如我上面提到的,通过阅读并遵循从Github Repo页面找到的指令,设置很容易(特别是对于像我这样的新手和自学者)。 - https://github.com/onema/vagrant-lamp-development。您可以选择使用下载的zip file或选择使用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。
现在,为新创建的vhost创建一个简单的启动页面,以便在访问开发人员时确认您的配置是否将您重定向到目标vhost根文件夹您浏览器中的网站。当然,当您的配置正确时,您将看到启动页面。这就是我制作启动页面的方式。
我创建了一个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
- 在我的主持人档案中,而<
B {
config.vm.network "private_network", ip: "10.10.10.10"
在我的Vagrantfile中。
您可以通过查看Vagrantfile
并在此行下方导航 来发现此设置{> {br> # Host-Only networking required for nfs shares
>
然后从那里更改ip:
设置并更新您的hosts
文件以匹配IP。
再次编辑Vagrantfile
并添加您的vhost设置,指向您的开发站点文件夹,像这样添加这些代码块;
:wordpress => {
:name => "wordpress",
:host => "wordpress.dev",
:aliases => ["wordpress.dev"],
:docroot => "/wordpress.dev"
}
当您将代码添加到orig Vagrantfile
时,它应该如下所示;
: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
现在看起来像下面这个;请注意,
的{{1}}正上方的逗号w
和右括号:wordpress
的右侧。
在那里应该有一个逗号,当你添加另一个vhost时,你应该在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
中创建一个新文件夹然后...
重复步骤3B,4A,5
如果您在VM Box 正在运行时对/home/your-home-folder/Sites/new-project-folder
进行了更改或添加Vhost,请输入..
Vagrantfle
在您的终端中使更改生效。
如果您在VM Box 关闭时对vagrant provision
进行了更改或添加了虚拟主机,请输入...
Vagrantfile
在您的终端中使更改生效。
注意:本指南中使用的vagrant up --provision
将下载Vagrantfile
,您可以通过更改64-bit Precise Pangolin Basebox Base Box
将其更改为32-bit Precise Pangolin Basebox
{1}}。
我在我的情况下做了这个,因为我已经下载了我的32位基本框。所以我将其更改为32位,因此我不必再次下载。
更改...
Vagrantfile
至
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
中
所以看起来像......
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 up --provision
。
在此之后,启动浏览器并测试配置,浏览到vagrant provision
。
确保在其中放入一些索引文件。
伙计们,我的Linux Mint 13(基于Ubuntu 12.04的)开发盒破了。这就是为什么我不得不重新安装我的操作系统(我的不好......使用虚假RAID并且没有备份)。但是这一次,我使用的是基于Ubuntu 14.0.4 LTS的Linux Mint 17。
因此,我从头开始重新安装了所有内容,并快速设置了我的Web开发环境。但事实证明,我以前使用vagrant的工作设置不再有效。所以我已经搜索了如何设置另一个可以与Ubuntu 14.04 LTS一起使用的Web开发环境的解决方案。幸运的是,我找到了一个使用另一个名为http://wordpress.dev
所以这就是你设置它的方式。
CPT Server
那就是它!首次启动需要很长时间。
只需编辑config / config.yaml并转到文件的最底部。查找vagrant up
行并插入您的新虚拟主机:
vhost:
然后在 ServerName: mydevsite.dev
ServerAlias: mydevsite.dev
DocumentRoot: /var/www/mydevsite.dev
ServerAdmin: webmaster@localhost
中创建一个新文件夹,并将其命名为与ServerName或DocumentRoot文件夹www
匹配
如果在vagrant正在运行时添加了新主机,那么执行此操作; mydevsite.dev
如果在vagrant box运行时修改config.yaml的上半部分,请执行此操作; vagrant provision
不要忘记更新主机的hosts文件,将vhost指向vagrant的ip。
这就是它。
答案 1 :(得分:0)
你也可以使用这个:
https://github.com/paolooo/vagrant-lamp
你可以检查一下。
答案 2 :(得分:0)
最简单直接的Vagrant设置
https://github.com/fideloper/Vaprobash
观看"Apache Virtual Hosts Configuration"视频,快速了解如何创建虚拟主机
在安装之前不要忘记取消注释您喜欢的数据库类型:)
奖金:我可以在几秒钟内通过Sequel Pro连接到数据库的唯一流浪设置