升级到 Ubuntu 13.10 后,Apache 上的 laravel 项目出现 403 错误

Posted

技术标签:

【中文标题】升级到 Ubuntu 13.10 后,Apache 上的 laravel 项目出现 403 错误【英文标题】:403 error on Apache for a laravel project, after upgrade to Ubuntu 13.10 【发布时间】:2013-10-29 04:27:54 【问题描述】:

我升级到 Ubuntu 13.10。刚开始更新后运行apache时,文件丢失/损坏,所以我只是重新安装了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不能识别呢?

【问题讨论】:

请参阅***.com/a/19729573/911550 了解您的 php 问题。 【参考方案1】:

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。

【讨论】:

感谢您的回复。我正在运行 2.4.6 版(Ubuntu)。我进行了更改,但仍然得到 403。我还注意到,当我启动服务器时,我看到“无法可靠地确定服务器完全限定的域名”,这是我以前没有的,而且很奇怪,因为我有 Servername在 vhost 文件上设置。 更新:按照这些指南,我能够让常规 PHP 进行渲染。如果有人对 Laravel 而不是原始 PHP 有问题,请考虑重新安装 Mcrypt。如果您进行了更改但仍然无法正常工作,请重新启动您的计算机(如果我知道的话,我可以节省一个小时)。 @Max Małecki:我只是想粘贴完全相同的文本:D 漂亮,感谢您知道需要更改的内容!【参考方案2】:

我遇到了同样的问题,出于某种原因,使用 Sudo 重新启动 Apache 会有所不同。 mods rewrite 和 mcrypt 健康吗?

【讨论】:

Are mods rewrite and mcrypt healthy? 不应包含在您的答案中。它应该是评论或新问题。【参考方案3】:

我在路由文件 (web.php) 中有两个路由(相同的链接)但控制器操作不同的问题。第二个动作是空的,所以它是空的。

例如:

Route::get('/route', 'Controller@firstAction');
Route::get('/route', 'Controller@secondAction');

【讨论】:

以上是关于升级到 Ubuntu 13.10 后,Apache 上的 laravel 项目出现 403 错误的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 升级到 13.10 后 mCrypt 不存在

升级到 Ubuntu 13.10 后 Eclipse 菜单不显示

解决更新到 Ubuntu 13.10 和 apache 2.4 后默认站点不存在的错误

在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)

ubuntu13.10升级到ubuntu14.04

如何为 Apache 2.4/ubuntu 13.10 及更高版本设置虚拟主机?