8

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

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

这是我的基本设置。Vagrant 版本 1.5.4,VirtualBox 版本 4.3.8,Windows 7 x64,PuPHPet 的配置文件,但在下载后高度自定义添加了虚拟主机、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 共享链接。然后我保存了文件并使用sudo service httpd restart 重新启动了 Apache

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

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

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

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

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

无论如何,我希望有人可以回答仍然存在的“为什么这样做”的问题,我真的希望它可以在此过程中对某人有所帮助。

谢谢,

c0p

4

2 回答 2

6

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

我最终做的如下:

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

编辑:

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

谢谢,希望这可以帮助任何像我一样了解服务器知识的人。

于 2014-09-14T01:20:10.827 回答
5

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

ServerName WhateverItIs.com
ServerAlias *.vagrantshare.com 

现在你可以走了。

于 2014-11-02T20:49:35.630 回答