我有一个简单的脚本,从一个SMB挂载到另一个SMB文件。 源文件系统是相同的,但Web服务器是不同的。 我使用PHP通过将文件复制到临时目录来处理文件,然后在其上执行其他任务。 这个设置是在一个时间点的工作,但似乎不能正常工作。 有人能指出我正确的方向吗?
fstab坐骑 :
//192.168.0.x/share /media/folder smbfs username=user,password=mypass //192.168.0.x/share2 /media/folder2 smbfs username=user,password=mypass
copy('/media/folder/filename.txt','/media/folder2/temp/filename.txt');
错误 :
如何在Windows中使用path太深的问题来自动复制文件?
Python复制文件:IOError:权限被拒绝
交易文件复制
如何recursion复制在Linux / Unix上以“abc”开头的目录?
Warning: copy(/media/folder2/temp/filename.txt): Failed to open stream: Permission denied in /www/myPHP.PHP on line xx
/media/folder = 777 /media/folder2/temp = 777
Windows卷影复制错误:2155348129
system("cp /media/folder/filename.txt /media/folder2/temp/filename.txt");
可能为你工作。
听起来像一个问题是特定于权限和操作系统,而不是PHP ..什么网络服务器? 什么是服务器运行? 没人:没有人? 可以nobody:nobody或www-root:www-root读取/写入数据到您正在尝试访问的目录中?
sudo su - nobody
可能不会工作,因为它最有可能有一个/bin/false shell
没有人可能不是正确的帐户.. ps auxw | grep apache | awk {'print $1'} ps auxw | grep apache | awk {'print $1'} ps auxw | grep apache | awk {'print $1'}并查看它运行的是哪个用户…然后尝试使用sudo切换到该帐户
在PHP可以访问写入文件之前,您需要确保Web服务器正在运行的用户 可以读取/写入正在尝试copy的目录。
我改变了命令:
copy('/media/folder/filename.txt','/tmp/filename.txt');
显然,处理SMB分享文件比我想象的要困难得多。 计算机重新启动时应该删除该文件,或者可能会定期(取决于系统设置)删除该文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。