在ubuntu apache的用户上是www-data.
在您的第一种情况下,apache没有正确的访问权限.以/ var / www目录的12.04默认权限为例
-rw-r–r– 1个根目录177 Sep 15 11:43 index.html
如您所见,apache只能读取该文件.这就是它所要做的.
第一组-rw-对应于用户.第二组烫发r-对应于该组,第三组烫发r-对应于其他每个人.
由于php由www-data运行,因此您将无法写入该文件.
使用sudo mkdir uploads在/ var / www中创建上载目录具有权限.
drwxr-xr-x 2根根4096 Nov 8 11:59上传
再次www-data无法写入上载目录!
您可以打开“其他”权限(不好,因为随后任何用户都可以写入该目录,而实际上您只希望能够写入www-data),则可以将www-data添加为该目录的所有者.您可以创建一个管理员组或其他内容,然后将www-data添加到其中,(或者,如果没有其他用户需要使用它,只需将组更改为www-data,可能还有许多其他更安全的方式,我不是sys admin,这就是serverfault会很好的原因:))
至于您的用户问题,如果用户不存在,而您尝试使用chown,那将是一个问题.
daniel@daniel:/var/www$sudo chown doesnotexist:stuff uploads/
chown: invalid user: doesnotexist:stuff'
您是否检查了哪些用户是presnet?使用组还是猫/ etc / passwd?