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

Ash*_*win 3 configuration domain apache-2.2

我正在我的本地系统上测试配置以学习 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";
?>
Run Code Online (Sandbox Code Playgroud)

example.org 中的 index.php 包含

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

我还创建了一个名为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>
Run Code Online (Sandbox Code Playgroud)

当我访问example.com该网站时,按预期工作。/server/example.comget 中的脚本文件评估为 true 并显示in example.com

现在,当我访问example.org. 该网站什么也没显示。

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

127.0.0.1 example.com
127.0.0.1 example.org
Run Code Online (Sandbox Code Playgroud)

有人可以建议我在这里缺少什么吗?

Sha*_*den 7

你是访问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>
Run Code Online (Sandbox Code Playgroud)