linux – 在Vagrant中使用简单LAMP的多个vhost

我试图通过Vagrant创建一个简单的LAMP,它可以支持存储在/ var / www中的多个网站.这可以用vhosts完成.

每个项目都应以.dev结尾

无法创建每个构建,每个构建支持一个项目,每个项目都有一个数据库.

我不能用木偶或厨师做头或尾.我宁愿避免这种情况,但很乐意从回购中克隆它.

我需要一些建议或指出正确的方向.

谢谢

解决方法

Vagrant LAMP多个vhosts – 更新!

请参阅下面的更新信息

我一直在寻找如何改进我的网站开发工作流程的方法.我目前正在使用各种工具和应用程序,如主题项目中的LAMP,Webmin和Filezilla等.然后我发现了这个名为Vagrant的神奇工具的存在,在用我的项目测试之后我爱上了它并决定将它集成到我当前的本地web开发环境中.所以我进一步挖掘并搜索了如何使用我选择的基础盒Ubuntu 12.04 Precise Pangolin 32位创建和设置Vagrant的Multi Vhosts设置的可能性.搜索Google会返回很多结果,但我决定点击stackoverflow中的链接并找到了这个问题.我按照Dimitri Kouvdis的答案提到的链接,这是一个Github Repo.我测试了它并遇到了与Dimitri Kouvdis也遇到的非常类似的问题.但现在已经解决了,感谢他的评论,我让它成功了.但是在我寻找具有多个虚拟支持的理想Vagrant Box的过程中,我搜索并测试了几个来自Github的回购,直到我找到了合适的一个,我找到了一个.我之所以追捕这些回购,是因为我还不知道如何使用Puppet和Chef来配置我自己的开发服务器,这就是原因.

我找到了另一个为我工作的Github Repo

感谢这个回购

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).在流浪中我特意再次遇到了几个问题.我再次决定寻找另一个,直到我找到并成功设置onema的回购.我最终决定在我的Web开发实践环境中使用并将此解决方案集成到我当前的工作流程中.我开始喜欢onema的回购,因为;

>它易于设置,因为说明易于遵循,特别适合像我这样的新手和自学者.
>它有几个文档和示例设置.
>最重要的是,与我测试的其他产品相比,添加新的Vhost很容易.
>您可以选择并设置本地驱动器中的任何文件夹作为源站点/项目文件夹.
>没有不必要的(在我的情况下)附加组件(node.js,less等),这很简单.我只需要LAMP堆栈,加上vhost支持PHPmyadmin.

如何设置 – 对于像我这样的初学者和自学者

正如我上面提到的那样,通过阅读并遵循从Github Repo页面找到的指令,设置很容易(特别是对于新手和像我这样的自学者). – https://github.com/onema/vagrant-lamp-development.您可以选择使用下载的zip file或选择使用git clone https://github.com/onema/vagrant-lamp-development将Vagrant文​​件复制到本地驱动器.

这就是我设置它的方式(在我的* nix机器中,Ubuntu 12.04 x64);

>使用下载的zip文件或git将文件下载到本地驱动器,然后执行基本的Vagrant和VirtualBox设置.阅读Github Page的说明,并执行以下步骤.
>通过我的设置,我对Vagrantile进行了一些编辑.在行:原始Vagranfle文件的70,我通过发表评论#来禁用NFS
config.vm.synced_folder“〜/ Sites”,“/ vagrant”,nfs:true

所以,它现在看起来像这样……

#config.vm.synced_folder“〜/ Sites”,nfs:true

然后评论出来……

#config.vm.synced_folder“〜/ Sites”,“/ vagrant”

line:来自orig Vagrantfile的140

所以,它现在看起来像这样……

config.vm.synced_folder“〜/ Sites”,“/ vagrant”

我这样做是因为在我的机器中,在流浪中,它会抛出几个与我无法理解的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“成功!!!你的wordpress.dev看起来很好”; ?>所以当你成功到达你的vhost时,你会受到成功!!!你的wordpress.dev看起来很好
>现在,将您的Vagrant Box的IP地址添加到您的hosts文件,并将您的开发站点wordpress.dev映射到它,就像这样; 192.168.50.4 wordpress.dev
注意:192.168.50.4是Vagrant Box的默认配置IP地址,您可以根据自己的喜好进行更改并更新您的主机文件.
在我的情况下,我这样说,

> A 10.10.10.10 wordpress.dev – 在我的主机文件中,而
> Bconfig.vm.network“private_network”,ip:“10.10.10.10”在我的Vagrantfile中.
您可以通过查看Vagrant文​​件并在此行下方导航来查找此设置#nnt-only nfs share所需的网络
然后从那里更改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",:docroot => "/wordpress.dev"
  }

所以你的Vagrantfile现在看起来像下面这个;注意逗号,正好在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",:docroot => ""
        },:symfony => {
                :name => "symfony",:host => "symfony.web",:aliases => ["symfony"],:docroot => "/symfony/web"
        },:wordpress => {
            :name => "wordpress",: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

>您现在已准备好启动Vagrant Box,打开终端窗口
ctrl alt tand输入
cd vagrant-lamp-development将目录更改为vagrant-lamp-development文件夹并输入
流浪汉
所以你可以启动Vagrant Box VM,然后等待它完全启动. FIRST INITIAL BOOT UP需要几个小时.成功启动后,打开浏览器并导航到
http://wordrpress.dev您应该看到之前在步骤3 B中创建的Web启动消息.

>要添加新Vhost,只需在/ home / your-home-folder / Sites / new-project-folder中创建一个新文件夹,然后……

>重复步骤3B,4A,5
>如果在VM Box运行时对Vagrantfle进行了更改或添加Vhost,请键入..
流浪者提供
在您的终端中使更改生效.
>如果在VM Box为OFF时对Vagrantfile进行了更改或添加vhost,请键入…
流浪汉 – 提供
在您的终端中使更改生效.
注意:本指南中使用的Vagrantfile将下载64位精确Pangolin BaseBox Base Box,您可以通过更改Vagrantfile中的配置将其更改为32位Precise Pangolin BaseBox.我在我的情况下做了这个,因为我已经下载了我的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"

DONE!

其他Vagrant LAMP回购我已经测试过工作 – 但不一定支持多个虚拟主机

> r8/vagrant-lamp支持多个虚拟主机
> mattandersen/vagrant-lamp
> chad-thompson/vagrantpress

其他Vagrant LAMP回购

> Vagrant LAMP Repo

如果你想使用R8的Vagrant-LAMP Repo – For Multi Vhosts目的

r8/vagrant-lamp

以下是添加新虚拟主机的方法

>创建一个匹配所需开发站点名称的新.json文件,例如:vagrant-lamp / data_bags / sites中的wordpress.dev
所以它看起来像……
流浪汉灯/ data_bags /网站/ wordpress.json
>编辑新创建的文件wordpress.json并添加以下内容(仅作为示例);

{
    "id": "wordpress","host": "wordpress.dev","aliases": [
        "www.wordpress.dev"
    ]
}

>在vagrant-lamp / public中创建一个名为wordpress.dev的新文件夹,它看起来像……
流浪汉灯/公/ wordpress.dev
>编辑您要添加的主机文件并映射192.168.33.10“wordpress.dev
所以它看起来像这样……
192.168.33.10 wordpress.dev
>你很高兴……如果盒子被关掉,请向流浪汉开火并输入流浪汉 – 提供
如果在执行此过程时打开了该框,则输入vagrant provision.
>在此之后,启动浏览器并测试您的配置,浏览到http://wordpress.dev.Make确保您在其中放置了一些索引文件.

更新:从Github添加了新的存储库.

伙计们,我的Linux Mint 13(基于Ubuntu 12.04的)开发盒破了.这就是为什么我不得不重新安装我的操作系统(我的坏…使用假RAID和没有备份).但是这一次,我使用的是基于Ubuntu 14.0.4 LTS的Linux Mint 17.

所以我从头开始重新安装了所有东西,并快速设置我的Web Dev环境.但事实证明,我以前使用vagrant的工作设置不再有效.所以我搜索了如何设置另一个可以与Ubuntu 14.04 LTS一起使用的Web开发环境的解决方案.幸运的是,我找到了一个使用另一个名为CPT Server的Github repo的工作设置

安装程序

所以这就是你如何设置的.

>克隆此回购:cptserver
或者下载zip文件
>浏览到您克隆或下载仓库的位置(解压缩zip文件)
>打开config / config.yaml并自定义您想要的方式.在我的情况下,我没有触及任何默认配置,我只是添加了我的虚拟主机.
>现在从您的终端,浏览到您下载的位置或克隆回购和流浪者

而已!首次启动需要很长时间.

添加新的虚拟主机很容易

只需编辑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 Box运行时修改config.yaml的上半部分,请执行此操作; vagrant reload –provision

不要忘记更新主机的hosts文件,将vhost指向vagrant的ip.

就是这样了.

相关文章

文件查找(find) 1 find 简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。 用法:...
非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,...
编译安装httpd 1 去官网下载源码包 为避免非法软件,一定要去官网下载http://www.apache.org httpd-2.4...
gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-mo...
1 一定用快捷键 这里简单的说下几个常用的快捷按键。 1.1 移动光标快捷键 Crtl + a 光标回到命令行...
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径。如果test命令中列出的条件成立...