apache - Vagrant Share - 访问虚拟主机并访问那些不在默认 Web 根目录中的主机

标签 apache vagrant puppet vhosts puphpet

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

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

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

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

谢谢大家,

0p

自我更新

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

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

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

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

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

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

有评论 #听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 分享关联。然后我保存了文件并使用 重新启动了 Apache sudo 服务 httpd 重启

然后我跳回 Firefox (Windows 7) 并刷新我在编辑此文件之前已经访问过的奇怪的 vagrantshare.com 页面。居然把的内容拉了出来站点名称 我在 中给它的文件夹httpd.conf 文件。所以它有效!真酷!

我遇到的唯一问题是我在重新启动 Apache 时收到此警告:
Stopping httpd:                                            [  OK  ]
Starting httpd: [Wed May 21 00:11:37 2014] [warn] NameVirtualHost *:80 has no Vi
rtualHosts

Apache 会启动得很好,但我不知道如何处理该警告。后来我只是删除了名称虚拟主机 *:80 我添加并重新启动 Apache 的部分内容。这次完全没有警告。

了解这允许我仅显示对单个站点的客户端更新。这适用于静态站点和 WordPress 站点。我只是更改了 vagrantshare.com 链接查找文件的位置。我可以通过编辑 来切换到多个站点。 httpd.conf 文件并在同一个 中重新启动 Apache Vagrant 分享 session (他们做超时)。我使用的是 Windows,所以我有两份 git-bash (msysgit) 同时运行。一个托管 Vagrant 分享 session 和另一个接受对 的编辑httpd.conf Vagrant ssh 进入虚拟机。

如果您打算在某些 WordPress 网站上使用它,您还需要编辑 wp_options 该站点的表。更改 网址 首页 中的值option_value 列到 提供给您的链接的完整网址 Vagrant 分享 .您也可以在管理面板中编辑这些值,但我使用 MySql 的速度要快得多,所以我选择了这条路线。

好极了!太好了。我几乎已经实现了我想要的目标。希望有人能解释为什么我做了什么 实际上有效。我是否只是对该地址进行了重定向?

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

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

谢谢,

0p

最佳答案

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

我最终做的是如下:

  • Vagrant 分享
  • ssh 到虚拟机
  • sudo vi/etc/apache2/sites-enabled/your-site-name.conf
  • 将 ServerName 更改为 your-generated-name.vagrantshare.com
  • 须藤服务 apache2 重新加载

  • 编辑:

    如果您想访问多个域上的虚拟主机(即 vagranshare 的域和您的本地域,例如 example.dev),在第 4 步之后添加 ServerAlias example.dev/etc/apache2/sites-enabled/ your-site-name.conf
    谢谢,希望这可以帮助任何像我一样缺乏服务器知识的人。

    关于apache - Vagrant Share - 访问虚拟主机并访问那些不在默认 Web 根目录中的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752968/

    相关文章:

    php - ubuntu 12.04 上的 Salt-Stack/Vagrant : php 5. 5

    linux - 由于验证,Puppet-Apt 安装包失败

    puppet "Error 400 on SERVER : Could not find class"

    linux - 使用继承时覆盖 Puppet 类

    linux - 将多个文件夹重定向到单个文件夹

    php - font-face 不适用于 .htaccess 文件

    android - 应用程序在 httprequest 上频繁崩溃

    apache - 如何在 Apache 本地测试 Https 连接

    ubuntu - Vagrant 配置术语

    linux - 如何使用 Puppet 工具安装 Websphere Application Server