centos httpd.conf 多个子域不同位置

Posted

技术标签:

【中文标题】centos httpd.conf 多个子域不同位置【英文标题】:centos httpd.conf multiple subdomain different location 【发布时间】:2015-03-17 09:21:14 【问题描述】:

这可能已经回答了,但我找不到直接的答案,或者我找到的答案不起作用。

我有一个域,我们称之为 mydomain.com DNS 设置指向两个子域。它们是 staging.mydomain.com 和 mydomain.com。两者都有指向相同 IP 的 A 记录,比如 8.8.8.8。

在服务器(8.8.8.8)上,我有两个虚拟主机的 httpd.conf,它们已经由 cpanel 创建。它们如下:

mydomain.com

<VirtualHost 8.8.8.8:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    DocumentRoot /home/userxxx/public_html

    ## User ydg015 # Needed for Cpanel::ApacheConf
    <IfModule mod_suphp.c>
        suPHP_UserGroup userxxx userxxx
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        <IfModule !mod_ruid2.c>
           SuexecUserGroup userxxx userxxx
        </IfModule>
    </IfModule>
    <IfModule mod_ruid2.c>
       RUidGid userxxx userxxx
    </IfModule>
    CustomLog /usr/local/apache/domlogs/mydomain.com-bytes_log "%%st %I .\n%%st %O ."
    CustomLog /usr/local/apache/domlogs/mydomain.com combined
    # ScriptAlias /cgi-bin/ /home/userxxx/public_html/cgi-bin/
</VirtualHost>

还有……

staging.mydomain.com

 <VirtualHost 8.8.8.8:80>
        ServerName staging.mydomain.com
        ServerAlias *.staging.mydomain.com
        DocumentRoot /home/userxxx/public_html/staging

        UseCanonicalName Off
        CustomLog /usr/local/apache/domlogs/staging.mydomain.com combined
        CustomLog /usr/local/apache/domlogs/staging.mydomain.com-bytes_log "%%st %I .\n%%st %O ."
        ## User ydg015 # Needed for Cpanel::ApacheConf
        <IfModule mod_suphp.c>
            suPHP_UserGroup userxxx userxxx
        </IfModule>
        <IfModule !mod_disable_suexec.c>
            <IfModule !mod_ruid2.c>
                SuexecUserGroup userxxx userxxx
            </IfModule>
        </IfModule>
        <IfModule mod_ruid2.c>
            RUidGid userxxx userxxx
        </IfModule>
       # ScriptAlias /cgi-bin/ /home/userxxx/public_html/staging/cgi-bin/


        # To customize this VirtualHost use an include file at the following location
        # Include "/usr/local/apache/conf/userdata/std/2/userxxx/staging.mydomain.com/*.conf"

    </VirtualHost>

问题是:

我正在使用 wordpress 多站点来构建两个站点(临时站点和主站点),并且多站点提供另一个子域,例如 http://en.mydomain.com 和 http://en.staging.mydomain.com

每次我去 en.mydomain.com 或 en.staging.mydomain.com 时,我总是登陆有人告诉我的“cgi-sys/defaultwebpage.cgi”,也许我应该对 http.conf 进行更改,但我不知道我应该改变什么。

谁能帮我解决这个问题?

任何建议将不胜感激。谢谢你!

【问题讨论】:

【参考方案1】:

这两个虚拟主机中给出的代码很好,但可能有另一个配置可能导致此行为。 您应该使用以下命令来识别正确的文档根目录。

httpd -t -D DUMP_VHOSTS

注意: httpd 需要替换为适合您环境的正确可执行文件,例如 apache2 或 apachectl

如果您仍然无法理解问题,请分享此命令的输出。

【讨论】:

以上是关于centos httpd.conf 多个子域不同位置的主要内容,如果未能解决你的问题,请参考以下文章

OS X 上的 Chrome 不尊重 etc/hosts 和/或 httpd-vhosts.conf localhost 子域

centos7下apache2.4.6虚拟主机配置

xampp配置多个监听端口和不同的网站目录

Apache实现一台服务器上运行多个网站

根据 .htaccess 中的域/子域更改 DirectoryIndex

黄聪:windows下使用xampp3.2.2配置多个监听端口和不同的网站目录