我有 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列中的siteurl和home值更改为vagrant share提供给您的链接的完整 url 。您也可以在管理面板中编辑这些值,但我使用 MySql 的速度要快得多,所以我选择了这条路线。
耶!好,很好。我几乎已经达到了我想要开始的目标。希望有人可以阐明为什么我所做的实际上有效。我只是基本上为那个地址做了重定向吗?
顺便说一句,当您完成vagrant share后,不要忘记注释掉这些行(保留它们,因为您以后可能会需要它们)并重新启动 Apache。现在回去处理客户想要更改的任何内容!
无论如何,我希望有人可以回答仍然存在的“为什么这样做”的问题,我真的希望它可以在此过程中对某人有所帮助。
谢谢,
c0p