问题描述
从Ubuntu 13.04服务器升级后,www页面将不会自动显示。
Error 403 Forbidden You don’t have permission to access / on this server.
我已经将访问控制保存从apache2.2更改为apache2.4,但这不起作用。我还能做什么?
最佳解决办法
发生的事情是apache2.4中配置文件的语法已经改变。
资料来源:在我升级到13.10之后,这也发生在我身上
conf.d文件
应将/etc/apache2/conf.d
中的所有文件移动到/etc/apache2/conf-available
。
它们现在以与sites
和mods
相同的方式工作。只需将您的conf文件放在conf-available
文件夹中,然后使用a2enconf <config-file-name>
启用所需的文件。
例:
我有一个文件conf.d/httpd.conf
,它有ServerName指令。为了完成这项工作,我不得不将其移至conf-available
目录并手动启用它。
sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd
网站文件
以前,/etc/apache2/sites-available
中的文件没有扩展名。例如/etc/apache2/sites-available/default
。现在需要.conf
扩展。
例:
如果你有/etc/apache2/sites-available/some-site
,在13.04你可以使用sudo a2ensite some-site
启用它。现在它会给你一个错误说
ERROR: Site some-site does not exist!
要解决此问题,请将.conf
附加到sites-available
中的所有配置文件中。您可以在sites-enabled
中执行相同操作,也可以手动删除所有文件和re-enable。我建议手动执行它们,因为您可能需要修复每个VHost(下一步)。
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
如果您决定手动执行此操作:
sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name
虚拟主机指令:
允许/拒绝与要求
如果您有以下内容:
<Directory /path/to/your/site/>
order allow,deny
allow from all
</Directory>
它应该成为:
<Directory /path/to/your/site/>
Require all granted
</Directory>
有关详细信息,请在Stack Overflow上的answer上通过DaveRandom检查comments。
简单地说,如果您升级到apache2.4并保留了apache2.2的旧httpd.conf
,则allow指令应该保持正常工作。如果您升级了httpd.conf
(我建议),那么在将Order
/Allow
/Deny
指令更改为等效的Require
之前,您将收到403错误。
目录选项
如果您有目录选项,请注意它们都必须预先添加+
或-
,或者根本不添加任何选项。不允许混合使用两者:
例:
这是允许的:
<Directory /path/to/your/site/>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
这是这样的(请注意,这些示例不会同时执行相同的操作,前一个禁用MultiViews
选项,下一个禁用):
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks MultiViews
</Directory>
这不再允许:
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks -MultiViews
</Directory>
最后一个配置选项会抛出一个语法错误:
Either all Options must start with + or -, or no Option may.
重启apache
一切都完成后,您需要重新启动Apache服务器才能使更改生效:
sudo apache2ctl restart
您可以在官方文档中找到2.2到2.4的详细upgrade guide。