为什么我在日志中收到这个错误?

为什么我在日志中收到这个错误?

好的,我刚刚启动了一个新的 ubuntu 服务器 11.10,我添加了 vhost,一切似乎都正常...我也重新启动了 apache,但是当我访问浏览器时,我得到了一个空白页

服务器 IP 是http://23.21.197.126/但当我跟踪日志时

tail -f /var/log/apache2/error.log 
[Wed Feb 01 02:19:20 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs
[Wed Feb 01 02:19:24 2012] [error] [client 208.104.53.51] File does not exist: /etc/apache2/htdocs

但我在站点启用中的唯一文件是这个

<VirtualHost 23.21.197.126:80>
         ServerAdmin [email protected]
         ServerName logicxl.com
         # ServerAlias
         DocumentRoot /srv/crm/current/public
         ErrorLog /srv/crm/logs/error.log

           <Directory "/srv/crm/current/public">
             Order allow,deny
             Allow from all
           </Directory>
   </VirtualHost>

我是不是遗漏了什么……文档根目录应该是/srv/crm/current/public,而不是/etc/apache2/htdocs错误所暗示的那样

有想法该怎么解决这个吗

更新

sudo apache2ctl -S
VirtualHost configuration:
23.21.197.126:80       is a NameVirtualHost
     default server logicxl.com (/etc/apache2/sites-enabled/crm:1)
     port 80 namevhost logicxl.com (/etc/apache2/sites-enabled/crm:1)
Syntax OK

更新

 <VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName logicxl.com
    DocumentRoot /srv/crm/current/public
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /srv/crm/current/public/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            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
</VirtualHost>

答案1

这听起来像是 apache 没有找到您的 sites-enabled 目录。
在您的 apache2.conf 文件 (etc/apache2/apache2.conf) 中查找如下行:

Include sites-enabled/

将其更改为绝对路径,如下所示:

Include /etc/apache2/sites-enabled/

这应该可以解决问题。

答案2

这可能是由于:

<VirtualHost 23.21.197.126:80>

任何请求都http://localhost可能错过初始 vhost 定义。

然后您将其(正确地)更改为:

<VirtualHost *:80>

除非你有特殊的原因,否则你应该总是使用,*:80因为这定义了要使用的地址on。ServerName定义要响应的名称。例如:

NameVirtualHost *:80
<VirtualHost *:80>
...
</VirtualHost>

答案3

您忘记将新站点添加到 apache:

$ sudo a2ensite (your project name) 

答案4

检查是否有VirtualHost针对您查询的接口 IP 的指令。如上文所述,当 Apache 找不到服务器配置来回答您的查询时,就会发生此错误 - 但它正在 ports.conf 中监听它。

相关内容