升级到 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 后 Eclipse 菜单不显示
解决更新到 Ubuntu 13.10 和 apache 2.4 后默认站点不存在的错误
在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)