PHP - Apache 无法写入刚刚创建的目录
PHP - Apache can't write in a directory that just created
我有一个允许将文件分配给产品的脚本。为避免名称文件重复的问题,每个产品都有一个特定的目录。
包含所有产品特定目录的更新目录如下所示。
4 drwxrwx--x 3 佩佩佩佩 4096 1 月 9 日 17:08。
20 drwxrwxr-x 35 pepe pepe 20480 1 月 9 15:42 ..
4 drwxrwxr-x 2 apache apache 4096 1 月 9 17:08 001
Apache 在用户 "apache" 下运行并且 "apache" 被设置为组 "pepe" 的一部分。
如果我尝试将文件上传到没有创建目录的产品,脚本会创建目录(具有为目录“001”显示的权限),然后尝试上传文件,但失败了。
如果我在 SSH 中将目录所有者更改为 pepe.pepe,然后重新上传文件,它就完美了。
为什么 apache 创建了下一行代码无法写入的目录?
我如何防止必须手动更改创建目录的所有权,因为我的客户在将文件分配给他的所有产品时显然不能这样做。
您可以尝试在 PHP 中使用 chgrp() 将组更改为 "pepe" 吗?如果它不起作用,至少错误会给你提示。另一个来自"safe mode":
When safe mode is enabled, PHP checks whether the files or directories
being operated upon have the same UID (owner) as the script that is
being executed.
我会尝试(手动)将父目录的所属组更改为 "apache"。
您应该更改对刚刚创建的目录的权限:
chmod('/path/to/directory', 0775);
我有一个允许将文件分配给产品的脚本。为避免名称文件重复的问题,每个产品都有一个特定的目录。
包含所有产品特定目录的更新目录如下所示。
4 drwxrwx--x 3 佩佩佩佩 4096 1 月 9 日 17:08。
20 drwxrwxr-x 35 pepe pepe 20480 1 月 9 15:42 ..
4 drwxrwxr-x 2 apache apache 4096 1 月 9 17:08 001
Apache 在用户 "apache" 下运行并且 "apache" 被设置为组 "pepe" 的一部分。
如果我尝试将文件上传到没有创建目录的产品,脚本会创建目录(具有为目录“001”显示的权限),然后尝试上传文件,但失败了。
如果我在 SSH 中将目录所有者更改为 pepe.pepe,然后重新上传文件,它就完美了。
为什么 apache 创建了下一行代码无法写入的目录?
我如何防止必须手动更改创建目录的所有权,因为我的客户在将文件分配给他的所有产品时显然不能这样做。
您可以尝试在 PHP 中使用 chgrp() 将组更改为 "pepe" 吗?如果它不起作用,至少错误会给你提示。另一个来自"safe mode":
When safe mode is enabled, PHP checks whether the files or directories being operated upon have the same UID (owner) as the script that is being executed.
我会尝试(手动)将父目录的所属组更改为 "apache"。
您应该更改对刚刚创建的目录的权限:
chmod('/path/to/directory', 0775);