【问题标题】:Vagrant Share - Accessing Virtual Hosts and accessing those that are not in the default web rootVagrant Share - 访问虚拟主机并访问不在默认 Web 根目录中的虚拟主机
【发布时间】:2014-07-08 07:29:05
【问题描述】:

我有 Vagrant 设置并运行 CentOS 6.5 x64,它运行良好。在这个虚拟机中运行多个站点没有问题。除了从 /var/www/html 运行的 PhpMyAdmin 之外,所有站点都从 /var/www/public 文件夹运行。我正在尝试使用 vagrant share 来访问任何正在运行的虚拟主机站点。问题是 vagrant share 只显示 /var/www/html 文件夹的内容。

为了访问我新创建的 /var/www/public 文件夹,我还需要做些什么吗?我尝试在另一台机器上编辑主机文件,看看是否可以将分配给这些站点的任何 url 转发到当前时髦的“流浪共享”地址,但这不起作用。我个人对下一步应该做什么感到茫然。

这是我的基本设置。 Vagrant 1.5.4 版、VirtualBox 4.3.8 版、Windows 7 x64、PuPHPet 的配置文件,但在下载后高度自定义添加了 vhost、ssh 配置、mysql 和 bash 文件。

希望其他人也遇到过这个问题。有谁有好的方向可以转吗?

谢谢大家,

c0p


自我更新

我自己的问题取得了重大进展。我正在做的事情是允许从我的 Vagrant 机器访问人的异地。我不需要他们始终拥有完全的访问权限,而只需按原样查看内容并告知我他们可能需要的任何更改。你知道,标准开发的东西。所以这就是我想出的。

一般地研究网络我遇到了这个链接: https://groups.google.com/forum/#!topic/vagrant-up/IcEl9-V9wsU

这个人正在运行 Nginx,看起来和我问了同样的问题,但使用了不同的网络服务器。如果您遇到与 Nginx 类似的问题,请查看该页面。他在那里确实有答案。我对 Nginx 一无所知,但仍然能够推断出一些我需要的东西。

所以我从那个页面得到的是,一旦他收到来自 Vagrant 站点的异常链接,他迅速编辑了 Nginx 的配置文件并重新启动了网络服务器。现在,疯狂的 url 指向虚拟主机文件位置,并导致他想要出现的页面实际出现,而不仅仅是显示默认的“欢迎”页面。

我考虑了一会儿,决定编辑我自己的配置,看看会发生什么。

我正在运行 CentOS,所以我编辑了 /etc/httpd/conf/httpd.conf 文件。

在这个文件的一半左右有一个注释 #Listen 80 行。紧接着这条线(或者如果你想给它一个空格),我添加了这个:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin some_dude@home.com
    DocumentRoot /var/www/public/sitename
    ServerName hungry-lovebird-7142.vagrantshare.com
    ServerAlias hungry-lovebird-7142
    ErrorLog /var/www/www.sitename.dev-error_log
    CustomLog /var/www/www.sitename.dev-access_log common
</VirtualHost>

我已将 DocumentRoot 指向我要访问的站点的文件夹,并将 ServerName 和 ServerAlias 设置为 vagrant share 链接。然后我保存了文件并使用 sudo service httpd restart

重新启动了 Apache

然后我跳回到 Firefox (Windows 7) 并刷新了我在编辑此文件之前已经访问过的古怪 vagrantshare.com 页面。它实际上提取了我在 httpd.conf 文件中提供的 sitename 文件夹的内容。所以它有效!太酷了!

我遇到的唯一问题是我在重新启动 Apache 时收到了这个警告:

Stopping httpd:                                            [  OK  ]
Starting httpd: [Wed May 21 00:11:37 2014] [warn] NameVirtualHost *:80 has no Vi
rtualHosts

Apache 可以正常启动,但我不知道如何处理该警告。后来我刚刚删除了我添加的 NameVirtualHost *:80 部分并重新启动了 Apache。这次完全没有任何警告。

请理解,这允许我仅向单个站点显示客户端更新。这适用于静态网站和 WordPress 网站。我刚刚更改了 vagrantshare.com 链接查找文件的位置。我可以通过编辑 httpd.conf 文件并在同一个 vagrant share 会话中重新启动 Apache 来更改多个站点(它们会超时)。我使用的是 Windows,所以我有两个同时运行的 git-bash(msysgit) 副本。一个主持 vagrant share 会话,另一个在 vagrant ssh 进入 VM 后接受对 httpd.conf 的编辑。

如果您打算将其用于某个 WordPress 网站,您还需要为该网站编辑 wp_options 表。将 option_value 列中的 siteurl 和 home 值更改为 vagrant share 提供给您的链接的完整 url >。您也可以在管理面板中编辑这些值,但我使用 MySql 的速度要快得多,所以我选择了这条路线。

耶!好,很好。我几乎已经达到了我想要开始的目标。希望有人能阐明为什么我所做的确实有效。我基本上是为那个地址做了重定向吗?

顺便说一句,当您完成 vagrant share 后,不要忘记注释掉这些行(保留它们,因为您以后可能需要它们)并重新启动 Apache。现在回去处理客户想要更改的任何内容!

无论如何,我希望有人能回答仍然存在的“为什么这样做”的问题,我真的希望它可以帮助其他人。

谢谢,

c0p

【问题讨论】:

    标签: apache vagrant puppet vhosts puphpet


    【解决方案1】:

    虽然有点挣扎,但您的更新为我指明了正确的方向。

    我最终做了如下:

    1. 流浪分享
    2. SSH 到虚拟机
    3. sudo vi /etc/apache2/sites-enabled/your-site-name.conf
    4. 将 ServerName 更改为 your-generated-name.vagrantshare.com
    5. sudo service apache2 重新加载

    编辑:

    如果您想访问多个域上的虚拟主机(即 vagranshare 的域和您的本地例如 example.dev)在第 4 步之后添加 ServerAlias example.dev 到 /etc/apache2/sites-enabled/ your-site-name.conf

    谢谢,希望这对像我一样了解服务器知识的人有所帮助。

    【讨论】:

      【解决方案2】:

      通过添加 ServerAlias 来更改您的 WhatItIs.conf 文件:

      ServerName WhateverItIs.com
      ServerAlias *.vagrantshare.com 
      

      现在你可以开始了。

      【讨论】:

      • 谢谢,这个答案应该更高
      猜你喜欢
      • 2014-06-18
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 2014-06-17
      • 2015-08-05
      • 2016-10-05
      • 1970-01-01
      相关资源
      最近更新 更多