PHP:创建文件,但不能附加(显然)正确的服务器权限(LAMP)

用户3600150

我已经看到了很多有关此主题的问题和答案,但似乎没有一个能帮助我解决这个问题。我的PHP代码成功创建了一个新的日志文件,但随后无法访问该文件以追加其他信息,关闭它等。

我正在将应用程序从本地XAMPP迁移到LAMP:因此,由于Windows / XAMPP没有权限问题,因此现在仅出现问题。

我从默认的Bitnami LAMP堆栈开始,然后在服务器上手动设置相关的目录权限:-我的sftp用户在htdocs上具有rwx和各种Web根目录-apache作为“守护程序”运行,因此我已阅读&执行对“ daemon”作为组的相关目录的执行权限-在大多数目录中,我不允许对“ daemon”进行写权限-但是,对于我的(应用程序生成的内部日志),我有一个“ logfiles”目录,两个用户均具有rwx而“ daemon”组-“ other”对所有用户都是-rwx

当我运行我的应用程序时,它立即崩溃了。错误日志显示fopen无法打开流:权限被拒绝。但是,权限表明它应该具有访问权限。

当我检查涉及的文件时,它具有以下权限:

-rw-r--r-- 1 daemon daemon 962 Oct  3 10:14 20151003logfile03-10-33530.txt

这告诉我该文件是由Apache创建的(即通过我的PHP脚本),并且具有读写权限,从我打开带有“ w”的fopen()开始

编辑:添加目录信息:文件夹级别权限授予我的ftps用户和守护程序(组)完全rwx访问权限:

drwxrwx--- 2 ftpuser daemon 4096 Oct  3 10:30 logfiles

但是它不能以“ a”开头

我假设这是一个文件权限问题,因为:a)它在XAMPP上正常运行b)它在错误日志中指出了权限错误

但是,鉴于直接指定的OS级权限,我看不到为什么应该是一个问题……也许Apache也在此目录上要求.htaccess'allow'吗?

有任何想法吗?


澄清为什么我不认为CHMOD是答案(对不起@RedAcid):CHMOD 777等只是设置我已经拥有的基本权限的一种方法。每个数字代表3个二进制字符,因此7是111(即读,写和执行)。如您在上面看到的,我已经在文件夹上为PHP / Apache进行了读/写/执行,并且对文件进行了读/写。我所读的内容表明您需要在目录级别执行,而不是在文件级别执行,因为它没有尝试执行文件。

那我在这里想念什么?为什么还会拒绝许可?

用户3600150

OK-我发现问题是更高级别的父目录没有读取/执行权限。工作中!(终于!)

有关更多详细信息,请参见前面的问题:

即使具有全开权限,PHP fopen()也会在文件上失败

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

应用程序启动后,在服务器中创建文件的正确方法是什么?

php权限创建文件

代码未在服务器目录php中创建文件

在PHP脚本所在的目录中的FTP服务器上创建文件夹

使用PHP在FTP服务器上创建文件夹

LAMP服务器中的php文件位置重要吗?

node.js fs.createWriteStream创建文件,但不能正确写入

nodejs 服务器创建文件名 4000,当服务器启动时

脚本服务器登录的SQL Server权限(但不能更改)

文件路径读取正确但不创建文件或写入文件

PHP文件可在云服务器上运行,但不能在本地主机上运行

如何授予服务器访问PHP文件的权限,而其他人则不能?

创建文件的权限

是否可以授予服务器读/写权限,但不能授予对Google Cloud Storage存储桶的删除权限?

服务器中php文件的写权限

从ASP .NET 4.0 Web服务在远程服务器中创建文件时出错

创建文件后,Linux在服务器之间自动进行文件传输

无法从服务器正确下载创建的压缩文件

如何确保使用正确的用户或权限创建文件?

apache2创建文件时的LAMP和默认文件权限

使用 PowerShell 在远程服务器中创建文件夹

在asp.net项目中的服务器上创建文件

Socket.io如何在本地服务器上创建文件运行时

如何使用abap编程在应用程序服务器中创建文件

无法在服务器“ EPERM,不允许操作” Node.js上创建文件

在Java中的/ public_html /下的Web服务器内创建文件夹

在FTP服务器(Commons-net)中创建文本文件

如何在C#中的服务器PC上创建文件夹

如何在Azure Logic应用中的SFTP服务器上创建文件夹?