同一 apache 服务器上有多个域名

同一 apache 服务器上有多个域名

我正在本地系统上测试配置以了解 Apache 配置并使用相同的方法来处理我的生产服务器。

我需要配置两个域example.comexample.org

我有 php 脚本所在的目录:

/server/example.com for example.com/server/example.org for example.org

我在两个目录上运行了该命令:

sudo chcon -R -h -t httpd_sys_content_t /server/example.*

example.com 中的 index.php 包含

<?
$debug = ($_SERVER['HTTP_HOST'] == 'example.com');
if ($debug) echo "in example.com";
?>

example.org 中的 index.php 包含

<?
$debug = ($_SERVER['HTTP_HOST'] == 'example.org');
if ($debug) echo "in example.org";
?>

example.conf我还创建了一个名为apache conf 文件/etc/httpd/conf.d/example.conf

以下是.conf文件的内容:

<VirtualHost example.com:81>
    DocumentRoot /server/example.com
    ServerName example.com
    <Directory "/server/example.com">
        AllowOverride None
        Options All
        Order allow,deny
        Allow from all
        DirectoryIndex index.php index.html index.htm
    </Directory>
</VirtualHost>


<VirtualHost example.org:82>
    DocumentRoot /server/example.org
    ServerName example.org
    <Directory "/server/example.org">
        AllowOverride None
        Options All
        Order allow,deny
        Allow from all
        DirectoryIndex index.php index.html index.htm
    </Directory>
</VirtualHost>

当我访问example.com该网站时,它按预期运行。脚本文件/server/example.com被评估为 true 并显示in example.com

现在,当我访问时example.org,网站什么都不显示。

另外,这是/etc/host我修改过的:

127.0.0.1 example.com
127.0.0.1 example.org

有人可以指出我在这里遗漏了什么吗?

答案1

您正在访问example.org:82,还是只是example.org?目前,您的站点绑定到不同的端口。这可能不是您想要的;您可能希望使用基于名称的虚拟主机。

您将需要NameVirtualHost在某处发出指令,并更改您的<VirtualHost>指令来匹配它。

像这样:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot /server/example.com
    ServerName example.com
    ServerAlias www.example.com
    # etc
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /server/example.org
    ServerName example.org
    ServerAlias www.example.org
    # etc
</VirtualHost>

相关内容