安装后Laravel 5.4 - 500错误

时间:2017-04-06 13:26:40

标签: apache laravel permissions centos selinux

昨天我安装了一个带有Apache,MySQL和PHP 7.0.17的全新CentOS 7虚拟机。

之后,我安装了composer和所有其他必需的php-packages。

然后我按照本指南安装了Firefly-iii:https://firefly-iii.github.io/using-installing.html

到目前为止一切顺利。数据库是从php artisan migrate命令迁移和播种的。

现在问题是,当我尝试从浏览器访问应用程序时,会出现500错误。没有日志规则,没有。

好吧,这可能是权限问题。我已经将所有者更改为apache:apache,没有结果。将存储和引导程序/缓存文件夹设置为777无结果。

好吧......现在怎么样。啊,也许用户或用户组不正确。我复制了我的public / index.php并内置了一些try catch语句(仍然没有日志)。

当我在浏览器中打开应用程序时,最终会返回一些结果。

这个尝试/捕获:

try {
        $response = $kernel->handle(
            $request = Illuminate\Http\Request::capture()
        );
} catch (Exception $e){
        echo $e->getMessage();
        echo '<br/>';
        echo 'User: '.exec('whoami');
        echo '<br/>';
        echo 'Group: '.exec('groups');
        echo '<br/>';
}

返回以下结果:

The stream or file "/var/www/html/application-folder/storage/logs/application-name-2017-04-06.log" could not be opened: failed to open stream: Permission denied
User: apache
Group: apache

在此消息之后,我创建了/var/www/html/application-folder/storage/logs/application-name-2017-04-06.log文件,并将权限更改为777。

这是我的bash历史的一小部分:

[user@16 logs]$ sudo chmod 777 firefly-iii-2017-04-06.log
[sudo] password for user:
[user@16 logs]$ ls -l
-rwxrwxrwx+ 1 apache apache 5 Apr  6 14:18 firefly-iii-2017-04-06.log
[user@16 logs]$ chmod 777 firefly-iii-2017-04-06.log
chmod: changing permissions of ‘firefly-iii-2017-04-06.log’: Operation not permitted

此错误消息仍在返回,此时我不知道还有什么可以尝试解决此问题。

有没有人知道解决方案或有其他人期待这种奇怪的行为?

请帮助我,我现在完全陷入困境,不知道现在该做什么以及如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

昨天经过一番搜索,我发现了这个答案:https://stackoverflow.com/a/37258323/1805919

我在自己的服务器上尝试过,此时可以通过浏览器访问该应用程序。

  

通过使用命令

关闭selinux来证明这是问题所在
setenforce 0
     

这应该允许写作,但你已经关闭了额外的安全性   服务器范围。那很糟。转回SELinux

setenforce 1
     

然后最后使用SELinux来允许使用它来写文件   命令

chcon -R -t httpd_sys_rw_content_t storage
     

你好了!

答案 1 :(得分:0)

首先,您的服务器必须位于应用程序路径的所有者组中。

其次,您必须设置存储文件夹的权限。以下是如何在* nix系统上设置权限的示例:

sudo chmod -R ug+rwx storage bootstrap/cache

答案 2 :(得分:0)

您是否尝试过设置新的应用密钥?您是否还运行了迁移并为应用程序创建了数据库?