Apache 虚拟主机指向错误的文档根目录

Apache 虚拟主机指向错误的文档根目录

我正在运行 Linux mint,并尝试使用 apache 设置虚拟主机。

我在 /etc/apache2/sites-available/ 中添加了以下文件(它是从该目录中的“默认”文件复制而来的)

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName testsite.dev
        DocumentRoot /home/chris/Projects/web/testsite

        <Directory /home/chris/Projects/web/testsite>
            Allow from all
            AllowOverride All
            Order allow,deny
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
    </VirtualHost>

我还在我的主机文件(/etc/hosts)中添加了一个条目,内容如下:

127.0.0.1    testsite.dev

我还启用了该网站并重新加载了 apache 服务:

a2ensite testsite 
service apache2 reload

但是当我浏览到http://测试站点.dev它从 /var/www/ 而不是 /home/chris/Projects/web/testsite 提供页面。

我究竟做错了什么?

答案1

我要检查以下几件事:

  • 确保您的配置中有一个“NameVirtualHost ***:80”。如果“*:80”不同,则可能会与“VirtualHost”中的值发生冲突(一般来说,如果它们相同,则问题较少)。
  • 确保您没有在某个地方定义其他可能与此冲突的“VirtualHost”(我假设“sites-available”中的所有内容以及任何其他 Apache 配置文件)。
  • 检查错误日志以确保没有发生任何“坏事”。启用和检查访问日志也可能有用。
  • 仔细检查两个目录中的文件/内容是否符合您的预期。如果您以某种方式将它们混淆了,则可能会按预期工作。
  • 停止并启动 Apache 服务。理论上重新加载应该可以工作,但以防万一(这不是我第一次看到重新加载失败但停止/启动可以工作)。

如果您完成所有这些操作但仍然无法获得想要的结果,我会创建一组最小的 Apache 配置(移出所有现有配置并创建临时配置)并开始一步一步地进行更改,以查看哪里出了问题。

相关内容