对不起,我不确定,如果这是正确的论坛,因为我不知道问题的原因,我面临。
我在Raspbian上安装了NextCloud (拉伸9),并将数据目录移动到一个挂载的NFS文件夹。当我试图访问NextCloud时,我得到了错误消息:“数据目录不可写”。
因此,我进行了更深入的研究,最终可以将问题与PHP7.0和NFS之间的交互隔离开来:
由于某些原因,应用程序可以写入目录,但 is_writable返回false。
我创建了以下PHP脚本:
结果是
is_writable返回假NFS目录下的“debug.php”屏幕截图当我切换到像\tmp这样的本地目录时,一切都很好,用debug.php目录截图“/tmp”
我的NFS被安装为
192.168.1.100:/volume1/pidata/donut on /var/churros type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.103,local_lock=none,addr=192.168.1.100)显然,用户映射和访问权限是正确的:
namei -l /var/churros/web/nextcloud/
f: /var/churros/web/nextcloud/
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root churros
drwxr-xr-x www-data www-data web
drwxrwxr-x www-data www-data nextcloud最后,在命令行上,作为用户www-data,我可以访问该目录并写入它。
所以:知道为什么PHP目录失败了吗?
发布于 2018-08-17 11:16:48
在您的代码中,您声明
$dirname = '/var/churros/data/nextcloud/';但是,当您在下面演示权限时,您将显示
namei -l /var/churros/web/nextcloud/我们如何知道dir数据是正确可写的?
结果是:
namei -l /var/churros/data/nextcloud/另外,我很好奇
if (touch($dirname.'/chkpt.tmp')) {...在上面的脚本中工作,它应该已经对/var/churros/data/ nextcloud //chkpt.tmp (注意,dir: nextcloud和filename chkpt.tmp之间的双斜杠)进行了操作。
我偶尔也会加入打字..。甚至错误的脚本,而不是复制/粘贴完全一样.我的观点是,乍一看,OP中似乎存在一些不一致之处,它们可能是在满足某些条件的同时导致错误的,或者非常简单地说,第一个变量声明需要修改以读取./web/nextcloud/以满足实际的dir需求。
https://serverfault.com/questions/915172
复制相似问题