【问题标题】:Laravel Application shows default apache and forbidden errorLaravel 应用程序显示默认 apache 和禁止错误
【发布时间】:2014-07-30 20:09:14
【问题描述】:

我有一个基于 laravel 的项目要做。我已经解压了我的文件夹 /home/testsite/public 文件夹并替换了我收到的httpd.conf 文件。

运行这两个命令

chown -R username:group /home/testsite/public
chmod -R 777 /home/testsite/public/app/storage

但是当我尝试访问 localhost 时,它显示默认 apache 页面,对于其他路由 url,它显示 404,当我尝试访问 localhost/server.php 时,它显示 Forbidden

我已将我的 httpd.conf 文件粘贴到此处:http://pastebin.com/WLpFN7Sr

【问题讨论】:

  • 我认为apache也需要访问/home/testsite目录,而不仅仅是public文件夹
  • 我的所有 laravel 安装都在 /home/testsite/public 目录下。其中也有一个公共目录
  • chown的组与apache用户所在的组相同吗?
  • 对不起,我是 linux 的初学者,我只是 chown 到 tgugnani:tgugnani,这是我除了 root 之外唯一的用户。不确定 apache 用户在哪个组中

标签: php apache laravel


【解决方案1】:

从您的 httpd.conf 中,我看到您的 apache 用户是 apache,它的组也是 apache。您可以从httpd.conf 中的这些条目中看到:

User apache
Group apache

在你的项目目录中试试这个:

chown -R :apache .

我还建议您不要将虚拟主机或目录定义放在您的httpd.conf 中。大多数发行版已经为您提供了一个放置它们的好地方,您可以在其中将单个 vhost 存储在单个文件中。当您想要启用一个、禁用另一个并且常规管理变得更容易时,这会变得更加容易。

例如,在 ubuntu 上,我将所有虚拟主机作为单独的文件存储在:

/etc/apache2/sites-available/

【讨论】:

  • 这没有帮助,运行命令重启的 apache,仍然是同样的问题
  • 运行groups 命令时的输出是什么?另外,这是什么风格的linux?您是否还可以仔细检查以确保该组实际更改了文件?您可能需要使用 sudo 运行 chown
  • 以 root 身份运行组显示 root,而 tgugnani 显示 tgugnani。它的 CentOS
  • 是的,我确实以 root 用户身份运行了该命令。此外,我仔细检查了所有文件夹和文件现在归 apache:apache 所有
  • 嘿@watcher 谢谢你的帮助,看来问题出在selinux 上。开启 selinux 工作 setenforce 0 。但不确定 selinux 是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 2011-11-20
相关资源
最近更新 更多