Php Laravel 5.6-日志/Laravel.log ubuntu xenial 16.04上的权限被拒绝

Php Laravel 5.6-日志/Laravel.log ubuntu xenial 16.04上的权限被拒绝,php,laravel,apache,ubuntu,permissions,Php,Laravel,Apache,Ubuntu,Permissions,以前访问过关于此的主题,但没有任何效果-正在努力消除logs/laravel.log上的权限错误“无法打开流”,目前唯一有效的方法是将目录权限设置为777,当然在实时服务器生产环境中,这是非常糟糕的做法 我几乎遵循了每一个教程,例如,这是我最近遇到的一个: 还有这个 一般来说,我执行的一些检查包括通过运行 ps aux | egrep '(apache|httpd)' 返回以下结果 root 6723 0.0 0.4 77944 4880 ? Ss 14

以前访问过关于此的主题,但没有任何效果-正在努力消除logs/laravel.log上的权限错误“无法打开流”,目前唯一有效的方法是将目录权限设置为777,当然在实时服务器生产环境中,这是非常糟糕的做法

我几乎遵循了每一个教程,例如,这是我最近遇到的一个:

还有这个

一般来说,我执行的一些检查包括通过运行

ps aux | egrep '(apache|httpd)'
返回以下结果

root 6723 0.0 0.4 77944 4880 ? Ss 14:53 0:00 /usr/sbin/apache2 -k start www-data 6726 0.0 0.6 432716 6708 ? Sl 14:53 0:00 /usr/sbin/apache2 -k start www-data 6727 0.0 0.6 432772 6696 ? Sl 14:53 0:00 /usr/sbin/apache2 -k start ubuntu 6874 0.0 0.0 12948 948 pts/0 S+ 15:07 0:00 grep -E --color=auto (apache|httpd) 根6723 0.0 0.4 77944 4880?Ss 14:53 0:00/usr/sbin/apache2-k启动 www数据6726 0.0 0.6 432716 6708?Sl 14:53 0:00/usr/sbin/apache2-k启动 www数据6727 0.0 0.6 432772 6696?Sl 14:53 0:00/usr/sbin/apache2-k启动 ubuntu 6874 0.0 0.0 12948 948 pts/0 S+15:07 0:00 grep-E--color=auto(apache | httpd) 所以我知道我的服务器是由www数据所有的——即使执行sudo chgrp更改,比如ubuntu:www数据也没有效果

我在当地环境中也有同样的问题。在生产环境中,我的刀片模板实际上呈现为原始文本内容,而不是显示Laravel错误页面——假设这是因为引导/缓存(我还修改了它的权限和所有权)无法写入/部分写入

我还注意到,很多教程都提到bootstrap/cache位于/storage文件夹中,但在较新的Laravel版本中,它似乎已移动到/project directory/bootstrap,而不是/project directory/storage/bootstrap等

我正在Amazon AWS实例上运行UbuntuXenial 16.04


任何帮助都将不胜感激

所以@Bart让我明白了。这里的问题是两方面的混合。首先是权限错误,整个项目目录在
chgrp
www-data
之后被
chmod
修改为755或775,这似乎已经被
chmod
修复了-有关这方面的指导,请参见原始问题中的注释

第二个原因是,由于一些错误的配置,在从最初的lamp服务器安装中删除apache之后,我不得不在某个时候重新安装apache,这出于某种原因,导致我的PHP在服务器上被禁用,apache的PHP文件(我发现这些文件名为PHP.mod和PHP.load)丢失。要么是这个,要么是最初的切换和升级到7.2禁用了我的PHP(这似乎是一个有文档记录的Ubuntu bug,请参考这里)

Apache在其启用的
mods
或可用的
mods
文件夹中没有提到任何PHP文件。因此,我按照这里的指南来启动并运行它,但更改了变量以匹配当前的PHP版本7.2,并将其指向
libphp7.2.So

我的配置也遇到了一些与mcrypt相关的错误,主要是因为mcrypt在7.2上不再受支持,因为它不再被维护,而且他们正在逐步淘汰它,以向libNadium过渡,但我相信仍然存在一些依赖性。我使用php pear通过pecl安装了它

还有一大堆我无法记录的错误,我强烈建议所有阅读本文的人,按照你的操作系统遵循一个好的指南,尽量不要回去/修改你最初的核心灯/WAMP/MAMP等。设置太像我了(我认为通过清除然后重新安装手动删除apache2引发了服务器端问题)

一旦我的PHP被启用,文本就不再输出原始数据,权限的更改也一定有效,因为我现在看到了Laravel默认的欢迎页面


也适用于“裸体”上的任何新安装服务器-请仔细检查您正在使用的服务器系统是否启用了PHP,以及PHP重写、mbstring、dev和CLI mods。

您可以显示存储和日志目录的所有者/权限吗?@aynber确保它输出以下内容:
drwxr-xr-x root root/drwxr-xr-x root var drwxr-xr-x root www-drwxr-xr-x root html drwxrwxr-x www-data www-data flexischedule drwxrwxr-x ubuntu www-data-storage drwxrwxr-x ubuntu www-data-logs
我作为所有者在ubuntu和www-data之间进行了切换,但仍然一无所获。很抱歉,当前的格式不太好comments@logikurl在项目根目录中使用这些命令,您应该可以很好地执行了
chmod-R 775存储chmod 775 bootstrap/cache chown-R www-data./
目录是组可写的,但并不总是传递到文件夹中。它们由ubuntu而不是www-data拥有,因此可能会把事情搞得一团糟。有一些扩展命令可能会有所帮助。@logikurl甚至,可能你没有在一个数据库上运行php是否打包?暂时将您的
public/index.php
内容更改为