apache vhost 配置 - 为什么这个不起作用

apache vhost 配置 - 为什么这个不起作用

我有一个带有以下配置文件的 ubuntu:

<VirtualHost *:80>
    ServerName dev.domain.com
    DocumentRoot /data/sites/dev.domain.com/www/public
</VirtualHost>

此主机上的其他 vhost 文件正在正确提供服务。它已正确建立符号链接;目录存在。这不起作用的原因是什么?我在标准 apache 服务器日志中看不到任何内容。

谢谢

编辑:
这是一台 ubuntu 主机,许多其他使用标准 sites-available / sites-enabled 的 vhost 都可以运行。一个问题是它同时运行 mod_php 和 phusion mod_rails。

@Lain 这是来自 a2ensite 的输出:jon@ve:/etc/apache2/sites-available$ sudo sudo a2ensite /etc/apache2/apache2.conf 错误:未找到与 /etc/apache2/apache2.conf 匹配的站点!

这是 apache2ctl -S 的输出(非常感谢 - 我一直想知道如何做到这一点)

 jon@ve:/etc/apache2/sites-available$ /usr/sbin/apache2ctl -S
 VirtualHost configuration:
 wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server ve.vesrv.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost ve.vesrv.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost testfb.hex.com (/etc/apache2/sites-enabled/001-testfb:1)
         port 80 namevhost testfb2.hex.com (/etc/apache2/sites-enabled/002-testfb2:1)
    ....
         port 80 namevhost rails-dev.rtm.com (/etc/apache2/sites-enabled/018-rails-dev.rtm.com:1)
         port 80 namevhost dev.domain.com (/etc/apache2/sites-enabled/019-dev.domain.com:6)
Syntax OK
jon@ve:/etc/apache2/sites-available$

答案1

添加到文件之间<VirtualHost>...</VirtualHost>

<Directory /data/sites/dev.domain.com/www/public>
    Order allow,deny
    allow from all
</Directory>

确保NameVirtualHost *:80在加载此文件之前有某个位置。(您可以在加载之前将其粘贴<VirtualHost *:80>以确保安全。)

编辑2:确保你sudo a2ensite config_file config_file 是包含块的文件<VirtualHost>。应该是/etc/apache2/sites-available/dev.domain.com.conf,你应该使用sudo a2ensite dev.domain.com.conf

确保你sudo apahce2ctl restart

编辑:

关于日志,不确定你的全局配置是什么。你可能需要以下配置<VirtualHost>...</VirtualHost>

    ErrorLog /var/log/apache2/dev.domain.com-error.log

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

    CustomLog /var/log/apache2/dev.domain.com-access.log combined

答案2

如果您确实创建了名为 的虚拟主机dev.domain.com,那么除非您为其创建了自己的 DNS 条目,否则它将不会解析到您的服务器,因此您将看不到任何内容。您似乎不太可能是 的所有者,因此domain.com亲自为其子域创建虚拟主机和 DNS 条目不是一个好主意。最好为您控制的域创建虚拟主机和 DNS 条目。

相关内容