昨天我安装了一个带有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
此错误消息仍在返回,此时我不知道还有什么可以尝试解决此问题。
有没有人知道解决方案或有其他人期待这种奇怪的行为?
请帮助我,我现在完全陷入困境,不知道现在该做什么以及如何解决这个问题。
答案 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)
您是否尝试过设置新的应用密钥?您是否还运行了迁移并为应用程序创建了数据库?