2013-02-24 25 views
-1

这是我的代码:Ubuntu的: “DocumentRoot的不退出”

NameVirtualHost *:80 
<VirtualHost *:80> 
    DocumentRoot var\www\public 
    ServerName my_ip 
</VirtualHost> 

<Directory "/var/www/public"> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 

但有错误:

[Mon Feb 25 01:38:54 2013] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting Warning: DocumentRoot [/etc/apache2/var\www\public] does not exist apache2: Could not reliably determine the server's fully qualified domain name, using "my_ip" for ServerName

[Mon Feb 25 01:38:55 2013] [warn] NameVirtualHost *:80 has no VirtualHosts

为什么DocumentRoot的搜索在/etc/apache2/var\,我写var\www\public

那修复我的问题:/var/www/public

+0

不是'RewriteRule ^。* $ - [QSA,L]'而不是'RewriteRule ^。* $ - [NC,L]'?你不需要'NC'作为这个条件,'QSA'正在添加请求查询字符串(不要以为它修复了这个问题)。它现在总是按照这个规则离开(因为'^。* $')。 – 244an 2013-02-24 22:31:00

回答

2

Ubuntu不使用反斜杠\作为路径分隔符,它使用/。由于它不理解路径分隔符,因此它将路径作为从/etc/apache/var而不是绝对路径的相对路径。请使用/var/www/public作为文档根目录。

+0

现在写:[Mon Feb 25 01:48:59 2013] [警告] NameVirtualHost *:80没有VirtualHosts ...正在等待apache2:无法可靠地确定服务器的完全合格的域名n ame,使用my-ip for ServerName – 2013-02-24 21:47:01

+0

只需编辑您的/ etc/hosts文件即可摆脱该警告。 – wimvds 2013-02-24 21:50:15

+0

@WarKings尝试'grep NameVirtualHost *'在你的配置目录中,它应该只存在一次(在上面显示的文件中),你可能有两个。我在ports.conf中出现了问题。 – 2013-02-24 21:53:10