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

Chr*_*ski 5 virtualhost apache-2.2

我正在运行 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>
Run Code Online (Sandbox Code Playgroud)

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

127.0.0.1    testsite.dev
Run Code Online (Sandbox Code Playgroud)

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

a2ensite testsite 
service apache2 reload
Run Code Online (Sandbox Code Playgroud)

但是,当我浏览到http://testsite.dev时,它提供的页面来自 /var/www/ 而不是 /home/chris/Projects/web/testsite。

我究竟做错了什么?

ues*_*esp 2

我会检查一些事情:

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

如果你完成了所有这些,但似乎仍然无法得到你想要的东西,我会创建一个最小的 Apache 配置集(将所有现有配置移出并创建临时配置)并开始一步一步地更改内容以查看内容在哪里出了问题。