地狱0
我们(我们的公司)一直在为我们创建的多个网站使用一个 CMS。我们现在已经多次遇到这个特殊问题,我们想不出解决办法。
以下是问题的描述: 在这个 cms 中可以创建图片库。当您通过 CMS 为图库创建文件夹时,该文件夹由 www 用户创建,其权限设置为 0666。当用户使用其编辑器视图将图片上传到此图库时,图片将上传到先前创建的文件夹并切成必要的大小. 创建.thumbnails 和其他文件夹来保存不同大小的图片。
如果您通过 ftp 为图库创建文件夹,则图库的所有者是 ftp 用户。如果您手动将权限设置为 0666 并以正确的权限上传文件,一切似乎都很好。现在在公共视图中,如果您选择这个先前创建的文件夹作为您的画廊文件夹,cms 将无法创建 .thumbnail 子目录(以及其他所需的子目录)。文件夹之间的唯一区别是文件夹的所有者。
现在我正试图掌握这个托管帐户的 php 日志。我想我会得到更多的信息。
艾伦
您需要执行权限才能在 Linux 中进入目录。因此,您需要将 Web 用户的权限设置为 7 (rwx) 以使其能够创建子目录。
实际上,要创建子目录,用户只需要一个目录的 wx 权限。为了能够完整列出目录的内容,用户需要 rx 权限。要 cd 进入一个目录,你肯定需要 x.
我会尝试将 apache 和 ftp 用户添加到同一个组(通常是 www-data),这可能会解决这个问题
要完成这项工作,您必须在 WWW 用户和 FTP 用户之间共享一个组,例如contentusers。然后您必须将文件夹的组更改为新的 contentusers 组并将目录上的“SetGID”位设置为(查看更多http://www.greenend.org.uk/rjk/2004/perms.html)。将使用适当的组创建新文件。
0666
对目录来说是非常糟糕的权限,因为您需要--x--x--x
让某人更改该目录。0777
会更合适(除了0777
仅适用于临时目录的事实,即使那样它也应该更2777
适合那个粘性位)。我用协作项目管理软件解决了类似的问题,您只需要找到具有创建文件夹的方法的类...如果代码注释得很好,这可能很容易...
正如您在 make dir 方法的简单说明中所见(可在www.php.net 找到),当您找到它时,您只需将 $mode var 更改为您想要的值...