对于知道apache的人来说,这应该是一个非常简单的问题。
我有一台Ubuntu计算机,我用它作为我的服务器。我以前曾多次使用apache,但从未遇到过这个问题。
启用站点的文件夹中的my owncloud.conf文件如下所示:
1 <VirtualHost *:80>¬
2 ServerName owncloud¬
3 DocumentRoot "~/mybook/ownCloud"¬
4 <Directory ~/mybook/ownCloud/>¬
5 Options None¬
6 Order deny,allow¬
7 Allow from all¬
8 </Directory>¬
9 </VirtualHost>
但是在启用网站并重新启动apache之后,我收到了这个错误:
AH00112: Warning: DocumentRoot [/etc/apache2/~/mybook/ownCloud] does not exist
我一直在寻找,而且我似乎无法找到“/ etc / apache2 /”应该引导到站点配置文件的所有设置文档根目录的默认路径的位置。
有谁知道如何删除此默认设置?
答案 0 :(得分:1)
忘记我对Mac的评论,你上面的内容是行不通的。如果您在Ubuntu上安装了Apache并接受了默认设置,则docroot是/ var / www,我假设您希望将/ mybook / ownCloud映射到docroot。这就是你应该这样做的原因,因为httpd将使用对真实docroot的组权限运行。这可以使用我下面的别名来完成。查看底部,但请注意我在映射任何内容之前在开头指定了正确的默认docroot。您可以更改docroot,但必须确保正确设置新目录结构的权限。
我将您的/ mybook / ownCloud /别名为ownCloud。另外,为了清楚起见,我还有其他指令从下面的网站启用代码中删除。
顺便说一下,我个人从未在像上面这样的Apache conf文件中使用过tildes,在启动过程中可能会让人感到困惑。<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /owncloud/ "/mybook/ownCloud"
<Directory "/mybook/ownCloud">
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>
编辑: 还有其他方法可以配置VHost,但这基本上就是如何完成的。您不再在httpd.conf中设置服务器范围的docroot声明。 / etc / apache2 / path是服务器主页,并且在您的站点启用时没有docroot声明,它可能在httpd启动时默认为Server Home。