Hell0
我们(我们公司)已经为我们创build的几个网站使用了一个CMS。 我们现在已经遇到过几次这个特殊的问题,所以我们不能想到解决这个问题的方法。
下面是问题的描述:在这个cms中可以创build图片库。 当您通过CMS为图库创build文件夹时,文件夹将由www用户创build,并且其权限设置为0666.当用户使用其编辑器视图将图片上传到此图库时,图片将被上传到之前创build的文件夹并切割成所需的尺寸。 .thumbnails和其他文件夹被创build来保存不同大小的图片。
如果你通过ftp为图库创build文件夹,那么图库的所有者是ftp用户。 如果您手动将权限设置为0666并以正确的权限上传文件,一切似乎都可以。 现在在公共视图中,如果您select以前创build的文件夹作为您的图库文件夹,则cms无法创build.thumbnail子目录(以及其他所需的子目录)。 文件夹之间的唯一区别是文件夹的所有者。
现在我正试图让我的手在这个托pipe帐户的PHP日志。 我想我会有更多的信息。
艾伦
您需要执行权限才能在Linux中input目录。 所以你需要为web用户设置权限为7(rwx),以使其能够创build子目录。
实际上,要创build子目录,用户只需要目录上的wx权限。 为了能够完整列出目录的内容,用户需要rx priviliges。 要进入一个目录,你一定需要x。
我会尝试添加Apache和FTP用户到同一组(通常是万维网数据),这可能会解决这个问题
要做到这一点,你必须在WWW用户和FTP用户之间共享一个像内容用户那样的组。 然后,您必须将文件夹组更改为新的内容用户组,并将目录上的“SetGID”位设置为(更多信息,请参阅http://www.greenend.org.uk/rjk/2004/perms.html )。 新文件将使用适当的组创build。
0666是非常不好的权限的目录,因为你需要--x--x--x位让有人更改到该目录。 0777会更合适(除了0777只适用于临时目录,即使如此,它应该2777那个粘性位)。
我修复了合作项目pipe理软件的类似问题,你只需要用创build文件夹的方法来find这个类…如果代码被很好的评论,这可能很容易。
bool mkdir ( string $pathname [, int $mode= 0777 [, bool $recursive= false [, resource $context ]]] )
正如你可以在make dir方法(在www.php.net中find )的简单解释中看到的那样,当你find它的时候,你只需要把$ mode var改成你想要的值。