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

Dim*_*dis 6 linux lamp vagrant

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

每个项目都应以.dev结尾

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

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

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

谢谢

Gar*_*ryP 15


Vagrant LAMP多个vhosts - 更新!


请参阅下面的更新信息

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

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

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

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

正如我提到的上面,设置是通过阅读和以下从中发现该指令的GitHub库页方便(特别是新手和自我学习像我一样).- https://github.com/onema/vagrant-lamp-development.您可以选择使用下载的zip文件或选择使用git clone https://github.com/onema/vagrant-lamp-development到复制Vagrant文件到本地驱动器.

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

  1. 通过使用下载的zip文件将文件下载到本地驱动器,或者git执行基本的Vagrant和VirtualBox设置.从Github页面读取指令,并执行以下步骤.

  2. 通过我的设置,我编辑Vagrantile了一下.在line: 70orig 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相关错误.

  3. 现在,为了这个例子,从它的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

  4. 现在,将您的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此行并在此行下方导航来找到此设置

      # Host-Only networking required for nfs shares

      然后ip:从那里更改设置并更新您的hosts文件以匹配IP.

  5. Vagrantfile再次编辑并添加您的vhost设置,指向您的开发站点文件夹,像这样添加这些代码块;

    :wordpress => {
       :name => "wordpress",
       :host => "wordpress.dev", 
       :aliases => ["wordpress.dev"],
       :docroot => "/wordpress.dev"
    }
    
    Run Code Online (Sandbox Code Playgroud)



    当您将代码添加到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"
      }
    
    Run Code Online (Sandbox Code Playgroud)


    所以你Vagrantfile现在看起来像下面这个; 拿上逗号音符,正上方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
    
    Run Code Online (Sandbox Code Playgroud)
  6. 您现在已准备好启动Vagrant Box,打开终端窗口

    ctrl + alt + t并输入

    cd vagrant-lamp-development以将目录更改为vagrant-lamp-development文件夹并输入,

    vagrant up

    以便您可以启动Vagrant Box VM,然后等待它完全启动.FIRST INITIAL BOOT UP需要几个小时.成功启动后,打开浏览器并导航到

    http://wordrpress.dev

    您应该看到之前在步骤3 B中创建的Web启动消息.

  7. 要添加新Vhost,只需在里面创建一个新文件夹/home/your-home-folder/Sites/new-project-folder,然后......

    • 重复步骤3B,4A,5

    • 如果您Vagrantfle在VM Box 运行时对Vhost进行了更改或添加,请

      vagrant provision

      在终端中键入.. 以使更改生效.

    • 如果Vagrantfile在VM Box为OFF时对vhost进行了更改或添加,请

      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"
      
      Run Code Online (Sandbox Code Playgroud)




      Vagrant.configure("2") do |config|
              config.vm.box = "precise32"
              config.vm.box_url = "http://files.vagrantup.com/precise32.box"
      
      Run Code Online (Sandbox Code Playgroud)

      DONE!


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

其他Vagrant LAMP回购

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

R8 /流浪灯

以下是添加新内容的方法 vhosts

  1. 创建一个新的.json文件符合您需要的DEV-网站名称,例如:wordpress.dev
    vagrant-lamp/data_bags/sites

    这样,我必样子...
    vagrant-lamp/data_bags/sites/wordpress.json

  2. 编辑新创建的文件wordpress.json并添加以下内容(仅限示例);

    {
        "id": "wordpress",
        "host": "wordpress.dev",
        "aliases": [
            "www.wordpress.dev"
        ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建一个名为wordpress.devinside 的新文件夹vagrant-lamp/public
    所以它看起来像......
    vagrant-lamp/public/wordpress.dev

  4. 编辑你的hosts文件以添加和映射192.168.33.10``wordpress.dev
    所以它看起来像这样...... 192.168.33.10 wordpress.dev

  5. vagrant up --provision如果盒子关闭,如果盒子打开了,那么你就可以开始使用它了...... 如果盒子被打开了,那就打开流浪汉并打字.
    然后输入vagrant provision.

  6. 在此之后,启动浏览器并测试您的配置,浏览到http://wordpress.dev.
    确保你在那里放了一些索引文件.

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

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

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

安装程序

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

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

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

添加新的虚拟主机很容易

只需编辑config/config.yaml并转到文件的最底部.查找vhost:行并插入新的虚拟主机,如下所示:

 ServerName: mydevsite.dev
    ServerAlias: mydevsite.dev
    DocumentRoot: /var/www/mydevsite.dev
    ServerAdmin: webmaster@localhost
Run Code Online (Sandbox Code Playgroud)

然后在其中创建一个新文件夹www并将其命名为与ServerName或DocumentRoot文件夹匹配mydevsite.dev

如果你在vagrant运行时添加了一个新主机,那么就这样做吧; vagrant provision 如果在vagrant box运行时修改config.yaml的上半部分,请执行此操作;vagrant reload --provision

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

就是这样了.


Dim*_*dis 0

最简单直接的 Vagrant 设置

https://github.com/fideloper/Vaprobash

观看“Apache 虚拟主机配置”视频,快速开始创建虚拟主机

安装前不要忘记取消注释您喜欢的数据库类型:)

奖励:我可以在几秒钟内通过 Sequel Pro 连接到数据库的唯一流浪设置