【问题标题】:How do I add virtual hosts the right way while running WHM?如何在运行 WHM 时以正确的方式添加虚拟主机?
【发布时间】:2011-10-17 12:52:48
【问题描述】:

我正在使用 WHM 和 CentOS 5 为我的客户分离帐户的专用服务器。我的一个客户要求我安装 subversion,并将存储库存储在 webroot 下。

  • repo 的真实文件夹将在“/home/theirfolder/svn”中
  • repo 将通过“svn.theirdomain.com”上的子域访问

我知道执行此操作的常规方法是在 Apache 中设置一个虚拟主机来处理重定向。问题是 WHM 似乎超越了整个虚拟主机过程,迫使我将更改烘焙到似乎对我不起作用的外部文件中。保留 webroot 下的文件夹时,我根本无法让虚拟主机识别该文件夹的路径。

我得到的最接近的是将 subversion 文件夹移动到 webroot 上,但即便如此,我使用身份验证的说明也没有遵循,所以从安全角度来看,这不是一个好的解决方案。在这个设置中,页面似乎是由 Apache 生成的,而不是由 Subversion 生成的。

这里的任何人都可以向我指出可以指导我完成此类设置的教程的方向,或者就我需要做什么提供清晰的分步指南吗?我已经尝试了很多东西,但没有什么能真正让我到达那里。我已经正确下载并安装了 Subversion 及其所有依赖项。

提前致谢!

【问题讨论】:

    标签: apache svn virtual subdomain whm


    【解决方案1】:

    实现此目的的一种方法是使用WHM's custom include files 之一,并以“常规方式”在其中添加您的自定义<virtualhost> 指令。对这些文件所做的更改将在 WHM 自动重建 Apache 配置文件后继续存在,而直接对 /etc/httpd/conf/httpd.conf 进行的任何更改可能不会。

    主 httpd.conf 在不同点有三个自定义包含文件 included。这些文件(如果运行 Apache 2.x)位于:

    • /usr/local/apache/conf/includes/pre_virtualhost_2.conf,包含在自动生成的<virtualhost>指令之前
    • /usr/local/apache/conf/includes/post_virtualhost_2.conf,包含在自动生成的<virtualhost>指令之后
    • /usr/local/apache/conf/includes/pre_main_2.conf,包含在httpd.conf的顶部

    您可以直接编辑这些文件,也可以通过 WHM 管理面板(服务配置 -> Apache 配置,包含编辑器,在 WHM 11.30 上)。

    当 WHM/cpanel 无法通过其他配置方法执行我想要的操作时,我已使用 post_virtualhost_2.conf 为客户帐户设置额外的虚拟主机。任何有效的 Apache 配置指令都可以放在文件中 - 它只是完整地包含在主 httpd.conf 中。

    【讨论】:

    • 编辑 /usr/local/apache/conf/includes/post_virtualhost_2.conf 对我有用。
    • 感谢您,很容易混淆从 WHM/cPanel 工具添加全新虚拟主机的功能,以使用此处描述的微妙包含文件模式修改 WHM 已知的现有虚拟主机:@ 987654322@
    【解决方案2】:

    上述说明不是您按帐户使用的。放置在 apache 中的任何内容都包含在服务器范围内。 您可能希望使用 apache 包含来包含 mod dav 和 mod authz 共享对象。您可能已经设置好了,但这里有一些说明以防万一。 在 WHM 中,转到服务配置->Apache 配置->包含编辑器 将其放在 Pre Main Include 中:

    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    

    接下来你要制作一个 .conf 文件并将其放入

    /usr/local/apache/conf/userdata/std/2/<user account name>/svn.conf
    

    如果你想要 SSL 做同样的事情

    /usr/local/apache/conf/userdata/ssl/2/<user account name>/svn.conf
    

    如果上述目录尚不存在,则需要创建它们。

    文件将包含:

    <IfModule mod_dav_svn.c>
    <Location /svn>
    DAV svn
    SVNPath /home/<user account>/svn
    AuthType Basic
    AuthName "My Repo"
    AuthUserFile /etc/svn-auth-conf
    Require valid-user
    </Location>
    </IfModule> 
    

    用户名和密码可以设置:

    htpasswd -cm /etc/svn-auth-conf myusername
    

    然后提交文件更改执行:

    /scripts/ensure_vhost_includes --user=<user account>
    /scripts/rebuildhttpdconf
    /scripts/restartsrv_httpd
    

    你应该可以浏览到

    yourdomain.com/svn 
    

    它会从

    /home/<user account>/svn
    

    【讨论】:

    • 这似乎仅适用于自定义 cpanel/whm 默认生成的 VirtualHost 之一,但不适用于为用户创建额外的 VirtualHost。还是我错过了什么?
    • @zlovelady 你是对的。此处的说明仅适用于编辑由 cpanel 创建的现有虚拟主机的配置。你不能用它来创建一个新的,你上面的答案更适合新的虚拟主机
    猜你喜欢
    • 2012-12-29
    • 2014-01-26
    • 2017-02-27
    • 2013-04-16
    • 2010-10-21
    • 1970-01-01
    • 2016-05-12
    • 2014-06-19
    • 2021-04-17
    相关资源
    最近更新 更多