gpt4 book ai didi

linux - 在Vagrant中使用简单的LAMP的多个虚拟主机

转载 作者:行者123 更新时间:2023-12-02 20:00:34 26 4
gpt4 key购买 nike

我正在尝试通过Vagrant创建一个简单的LAMP,它可以支持存储在/var/www中的多个网站。这可以通过虚拟主机来完成。

每个项目应以.dev结尾

不能用创建每个构建来支持一个项目以及每个数据库的想法。

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

我需要一些建议或为我指明正确的方向。

谢谢

最佳答案

无家可归的LAMP多个虚拟主机-更新!

请参阅下面的更新信息

我一直在寻找有关如何改善我的Web开发工作流程的方法。我目前正在使用各种工具和应用程序,例如Theming Projects中的LAMP,Webmin和Filezilla等。然后,我发现了这个神奇的工具 Vagrant 的存在,并且在对我的项目进行测试之后,我爱上了它,并决定将其集成到当前的本地Web开发环境中。因此,我进一步进行了挖掘,并使用我选择的基本框Ubuntu 12.04 Precise Pangolin 32-bit寻找了如何使用 Vagrant 创建和设置多虚拟主机设置的可能性。搜索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)。特别是在vagrant up期间,我再次遇到了几个问题。我决定再次搜索另一个,直到找到并成功设置onema的仓库。我最终决定在我的Web开发实践环境中使用此解决方案并将其集成到我当前的工作流程中。我开始喜欢onema的 repo ,因为;

  • 易于设置,因为说明易于遵循,特别适合像我这样的新手和自学者。
  • 它具有一些文档和示例设置。
  • 最重要的是,与我测试过的其他虚拟主机相比,添加新的虚拟主机很容易。
  • 您可以选择本地驱动器中的任何文件夹并将其设置为源站点/项目文件夹。
  • 这很简单,没有不必要的附件(在我的情况下)(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-developmentVagrant文件复制到本地驱动器。

    这就是我的设置方法(在我的* nix机器上,Ubuntu 12.04 x64);
  • 使用下载的zip文件或git将文件下载到本地驱动器,然后进行基本的Vagrant和VirtualBox设置。阅读Github Page中的说明,并执行以下步骤。
  • 通过设置,我对Vagrantile进行了一些编辑。在orig line: 70文件的Vagranfle中,我通过将#注释添加到NFS来禁用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文件。
    在我的情况下,我这样说,
  • 一个10.10.10.10 wordpress.dev-在我的主机文件中,而
  • 我的Vagrantfile中的config.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"
    }

    当您将代码添加到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现在应如下所示;注意,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
  • 您现在可以启动“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 中发出的。
  • 要添加新的虚拟主机,只需在/home/your-home-folder/Sites/new-project-folder内创建一个新文件夹,然后...
  • 重复步骤3B,4A,5
  • 如果在VM Box为且正在运行的情况下对Vagrantfle进行了更改或添加了虚拟主机,请键入。vagrant provision在您的终端中使更改生效。
  • 如果您在VM Box为 OFF 时对Vagrantfile进行了更改或添加了虚拟主机,请输入...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"

    完毕!


  • 我测试过的其他Vagrant LAMP存储库有效-但不一定支持多个虚拟主机
  • r8/vagrant-lamp Supports Multiple Vhosts
  • mattandersen/vagrant-lamp
  • chad-thompson/vagrantpress

  • 其他 Vagrant 的LAMP repo
  • Vagrant LAMP Repo

  • 如果您想使用R8的Vagrant-LAMP Repo-用于多虚拟主机

    r8/vagrant-lamp

    这是添加新的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 并键入vagrant up --provision,如果该框处于关闭状态
    如果您在执行该过程时打开了该框,请改为键入vagrant provision
  • 之后,启动浏览器并测试配置,浏览至http://wordpress.dev。确保在其中放置了一些索引文件。

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

    伙计们,我的Linux Mint 13(基于Ubuntu 12.04)开发箱坏了。这就是为什么我不得不重新从头开始重新安装操作系统(我的糟糕……使用Fake RAID且没有备份)。但是这次,我使用了基于Ubuntu 14.0.4 LTS的Linux Mint 17。

    因此,我从头开始重新安装了所有内容,并快速设置了我的Web开发环境。但是事实证明,我以前使用 Vagrant 的工作设置不再起作用。因此,我一直在寻找有关如何设置另一个可与Ubuntu 14.04 LTS一起使用的Web开发环境的解决方案。幸运的是,我发现了一个可以使用另一个名为CPT Server的Github存储库的工作设置。

    设置

    因此,这就是您进行设置的方式。
  • 克隆此仓库:cptserver
    或下载zipt文件
  • 浏览到克隆或下载存储库的位置(提取zip文件)
  • 打开config/config.yaml并自定义所需的方式。就我而言,我没有触摸任何默认配置,只是添加了我的虚拟主机。
  • 现在,从终端上浏览至下载位置或克隆repo和vagrant up

  • 而已!第一次启动将花费很长时间。

    添加新的虚拟主机很容易

    只需编辑config/config.yaml并转到文件的最底部即可。查找vhost:行,并像这样插入新的virtualhost:
     ServerName: mydevsite.dev
    ServerAlias: mydevsite.dev
    DocumentRoot: /var/www/mydevsite.dev
    ServerAdmin: webmaster@localhost

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

    如果您在运行vagrant时添加了新主机,请执行此操作; vagrant provision如果在运行“vagrant”框时修改config.yaml的上部,请执行此操作;否则,请执行以下操作。 vagrant reload --provision
    不要忘记更新主机的hosts文件,将您的vhost指向vagrant的ip。

    就是这样了。

    关于linux - 在Vagrant中使用简单的LAMP的多个虚拟主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428311/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com