在 ubuntu apache 上的用户是www-data
.
在您的第一个场景中,apache 没有正确的访问权限。以 /var/www 目录的 12.04 默认权限为例
-rw-r--r-- 1 root root 177 Sep 15 11:43 index.html
如您所见,apache 只能读取此文件。这就是它需要做的所有事情。第一组-rw-
对应于用户。第二组烫发r--
对应于组,第三组r--
对应于其他所有人。
由于您正在运行 php,因此www-data
您将无法写入此文件。
upload
使用在 /var/www 中创建目录sudo mkdir uploads
会授予权限。
drwxr-xr-x 2 root root 4096 Nov 8 11:59 uploads
再次www-data
无法写入上传目录!
您可以打开“其他”权限(不好,因为任何用户都可以写入此目录,而实际上您只希望 www-data 能够写入),您可以添加www-data
为此目录的所有者。您可以创建一个admin
组或其他东西并向其中添加 www-data,(或者www-data
如果没有其他用户需要使用它,或者只是将组更改为,可能还有许多其他更安全的方式,我不是系统管理员,这就是为什么 serverfault会很好:))
至于您的用户问题,如果用户不存在并且您尝试使用chown
daniel@daniel:/var/www$ sudo chown doesnotexist:stuff uploads/
chown: invalid user: doesnotexist:stuff'
你检查过哪些用户是 presnet 吗?使用groups
或cat /etc/passwd
?