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

cOp*_*cOp 8 apache puppet vhosts vagrant puphpet

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

为了获得对我新创建的/ var/www/public文件夹的访问权限,我还需要做些什么吗?我已经尝试在另一台机器上编辑hosts文件,看看我是否可以将我分配给这些网站的任何网址转发到当前时髦的"流浪汉共享"地址,但这不起作用.我个人对我接下来要做的事情感到茫然.

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

希望其他人也可能遇到这个问题.有没有人有一个好转的方向?

感谢大家,

c0p


自我更新

我在自己的问题上取得了重大进展.我正在做的是允许从我的Vagrant机器访问人员的异地.我并不需要他们一直都能完全访问,而只是按照原样查看内容并通知我他们可能需要的任何更改.你知道,标准开发者的东西.所以这就是我想出的.

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

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

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

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

我正在运行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>
Run Code Online (Sandbox Code Playgroud)

我已将DocumentRoot指向我要访问的站点的文件夹,并将ServerName和ServerAlias设置为vagrant共享链接.然后我保存了文件并用sudo service httpd restart重新启动了Apache

然后我跳回到Firefox(Windows 7)并刷新了我在编辑此文件之前已经去过的oddball vagrantshare.com页面.它实际上提取了我在httpd.conf文件中给出的sitename文件夹的内容.所以它有效!Friggin很酷!

我遇到的唯一问题是我在重启Apache时收到此警告:

Stopping httpd:                                            [  OK  ]
Starting httpd: [Wed May 21 00:11:37 2014] [warn] NameVirtualHost *:80 has no Vi
rtualHosts
Run Code Online (Sandbox Code Playgroud)

Apache会很好地启动,但我不知道如何处理该警告.后来我刚刚删除了我添加并重新启动Apache 的NameVirtualHost*:80部分.这一次没有任何警告.

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

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

好极了!太好了.我几乎达到了我想要的目标.希望有人可以阐明为什么我的确实有效.我基本上只是为该地址重定向吗?

顺便说一下,当你完成了流浪汉的分享时,不要忘记注释掉那些行(保留它们,因为你以后可能需要它们)并重新启动Apache.现在回到客户想要改变的任何地方!

无论如何,我希望有人可以回答"为什么这个工作"的问题仍然存在,我真的希望它可以帮助一路上的人.

谢谢,

c0p

mic*_*iuc 6

稍微挣扎了一下,你的更新指出了我正确的方向.

我最终做的是如下:

  1. 流浪汉分享
  2. ssh到VM
  3. sudo vi /etc/apache2/sites-enabled/your-site-name.conf
  4. ServerName更改为your-generated-name.vagrantshare.com
  5. sudo service apache2 reload

编辑:

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

谢谢,希望这可以帮助任何拥有与我一样少的服务器知识的人.


Özg*_*gür 5

随后通过添加ServerAlias更改您的WhateverItIs.conf文件:

ServerName WhateverItIs.com
ServerAlias *.vagrantshare.com 
Run Code Online (Sandbox Code Playgroud)

现在你很高兴.