我正在尝试将网络服务器上的 php 脚本写入文件服务器上的文件夹 /data 中。
阿帕奇 2.2、PHP 5.x。这只是一个测试配置,但我想以某种方式了解这件事,因为我对网络服务器的权限不是很有经验。
我通过添加来共享文件服务器上的文件夹 /data
/data 192.168.20.6(rw,sync,no_subtree_check)
通过挂载文件夹
sudo mount 192.168.20.5:/data /mnt/data
创建一个指向 webroot 的链接(这有意义吗?)
sudo ln -s /mnt/data /webroot/site1/share
然后我得到这个:
Warning: fopen(/webroot/site1/share/data/uploads/Fotoraum/Original/Bluehend/test.txt): failed to open stream: Permission denied
我必须在哪里以及如何以合理的方式调整权限以允许脚本写入 /data 及其子文件夹?
多谢!
答案1
根据您的评论,我认为以下选项比chmod -R 775 /mnt/data
使用时mount
,您可以指定拥有文件的用户和组,也许您想使用以下内容:
sudo mount 192.168.20.5:/data /mnt/data -o uid=<uid-of-www-data>,gid=<gid-of-www-data>
uid
和gid
的值www-data
可以在/etc/passwd
和中找到/etc/group
。
答案2
您可以从 nfs 服务器对共享文件夹执行 chmod 6777,以便在该文件上创建的任何文件都属于该文件夹的所有者组。