好的,我刚刚启动了一个新的 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 中监听它。