【问题标题】:Apache2 - Set Document Root based on subdirectoryApache2 - 根据子目录设置文档根目录
【发布时间】:2021-12-19 12:38:33
【问题描述】:

我有一个默认的虚拟主机。它被配置为在 /var/www/html 中观看 Document Root 并且效果很好。但我有一个问题。我在子目录中有多个站点,但我不知道如何为每个站点设置 Document Root。例如,/var/www/html/test/var/www/html/test2 等。当我包含来自/var/www/html/test 的文件时,它会在var/www/html 中搜索。例如,我包含include_once '/core.php' 之类的文件,但我有一个错误Failed opening required '/var/www/html/core.php',因为这里没有当前文件。是否可以为主虚拟主机内的每个目录设置文档根目录?谢谢!

我的主要虚拟主机配置:

<VirtualHost *:80>
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    AccessFileName .htaccess

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

另外,您可以说,我需要使用相对路径,但在某些方面这是不可能的,因为有时我会使用由其他人创建的现成网站。

【问题讨论】:

    标签: php apache2 virtualhost


    【解决方案1】:

    是否可以为里面的每个目录设置 Document Root 主虚拟主机?

    简短的回答是不,你不能。每个虚拟主机 1 个文档根目录。为了了解事情是如何工作的,您需要了解directives context 是什么。让我们以VirtualHost directive 为例。正如我们从文档中看到的,它只有 1 个上下文,即服务器配置。服务器配置上下文告诉下一步:

    指令可以在服务器中使用 配置文件(例如,httpd.conf),但不在任何 VirtualHost 或目录容器。不允许进入 .htaccess 文件。

    但是DoocumentRoot 有两个上下文:服务器配置和虚拟主机。休息,你应该自己弄清楚;)

    有很多方法可以达到预期的效果

    1. Running several name-based web sites on a single IP address
    2. Running different sites on different ports
    3. Mixed port-based and ip-based virtual hosts

    希望这个答案对你有所帮助!

    【讨论】:

    • 我还有一个问题。是否可以在一个 IP 地址上运行多个没有域的网站?例如,创建两个不同的虚拟主机并为每个不同的目录设置?之后,通过示例运行站点:IP/test1IP/test2IP/test3 等。对于这些站点中的每一个,目录根应为 /var/www/test1/var/www/test2 等。
    • 是的,但您需要为此使用端口。示例:&lt;VirtualHost 192.168.0.1:81&gt;...&lt;/VirtualHost&gt;&lt;VirtualHost 192.168.0.1:82&gt;...&lt;/VirtualHost&gt;httpd.conf 您需要为每个端口添加 Listen 指令(81 和 82 分别是 test1 和 test2)。示例(在 httpd.conf 文件中):Listen 81 Listen 82。 @Shellai
    • 好的,谢谢!我还阅读了有关服务器别名和服务器名称的信息。是否可以将它们用于同一 IP 上没有域的不同虚拟主机?还是只能使用端口?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 2014-03-20
    • 1970-01-01
    • 2015-11-04
    • 2018-04-01
    • 1970-01-01
    • 2013-03-13
    相关资源
    最近更新 更多