问题描述
我已升级到Ubuntu 13.10。首先,在更新后运行apache时,文件丢失/损坏,因此我只是re-installed apache。我备份了虚拟主机文件。
尝试从浏览器访问我的Laravel项目时,出现403错误。我已经多次更改了根文件夹的权限,但是仍然被禁止。我不认为这是Laravel问题,因为我已经在13.04上修复了该问题,并且我使用的是相同的文件。
这是我的000-default.conf文件,位于/sites-enabled和/sites-available中。自安装以来,我的apache2.conf文件未更改。
<VirtualHost *:80>
DocumentRoot /home/brennan/development/MasonACM/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/brennan/development/MasonACM/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
还应该注意,我的.htaccess文件不丢失,而且自该站点在13.04上运行以来未更改,这也应该很重要。
更新:
我现在可以使用apache的主机设置,但是现在浏览器正在显示index.php的实际代码,这意味着apache由于某种原因未使用php。我刚刚检查了php是否已安装,那么为什么Apache无法识别它?
最佳思路
Apache2可能也已升级到版本2.4
,并且需要注意一些事项。
首先,您现在有Apache 2.4.x +吗?通过运行检查:
$ apache2 -v
如果是这样,您的虚拟主机需要进行一些调整:
第一:+/-选项:
一些Options
参数需要+/-语法。 Read more here。在某些指令上混用+/-时,这可能尤其重要(请阅读上一个链接以了解更多信息)。
更改:
Options Indexes FollowSymLinks MultiViews
至:
Options +Indexes +FollowSymLinks +MultiViews
第二:允许/拒绝
Apache现在通过mod_authz_host进行访问控制
更改:
Order allow,deny
Allow from all
至:
Require all granted
有关upgrading from Apache 2.2 to 2.4的更多信息,请点击这里。