我正在运行一个脚本,该脚本对文件的内容进行一些更改,然后将其修改时间重置为以前的时间。间歇地,我会在日志中发现以下错误:
Run Code Online (Sandbox Code Playgroud)touch() [function.touch]: Utime failed: Operation not permitted
file_put_contents()通话刚结束时,这似乎已更改了我尝试处理的文件的内容touch()。没有与该file_put_contents()行相关的错误。
有人发生过这种情况吗?谁能找出允许我写文件但不更改其修改时间的权限集?我正在Linux上执行此操作。
这是 PHP 命令的一个错误touch。即使您拥有该文件的写权限,如果 PHP 不是“所有者”,该操作也会失败。
如果您使用的是 Apache 和 Linux,请在服务器控制台上使用以下命令使 PHP 成为文件的所有者:
sudo chown www-data:www-data /YourPATH/YourFILE
Run Code Online (Sandbox Code Playgroud)
更好的是,更新包含您希望 PHP 控制的文件的整个文件夹:
sudo chown -R www-data:www-data /YourPATH/YourFOLDER
Run Code Online (Sandbox Code Playgroud)
旁注:由于 PHP 可以写入文件,这意味着它必须具有用户或组写入权限。既然如此,触摸就不应该有这种行为。这似乎是一个错误。
| 归档时间: |
|
| 查看次数: |
3629 次 |
| 最近记录: |