【发布时间】:2012-02-07 17:54:10
【问题描述】:
我正在尝试让我的 php 测试上传脚本工作,并且想知道允许文件上传到 var/www/image 目录中的 ubuntu 服务器中的命令是什么
【问题讨论】:
我正在尝试让我的 php 测试上传脚本工作,并且想知道允许文件上传到 var/www/image 目录中的 ubuntu 服务器中的命令是什么
【问题讨论】:
上传文件的用户名是什么?通常在 Ubuntu 上,Apache Web 服务器的用户名是 www-data。您可以通过在进程列表命令中找到 Web 服务器进程并查看它在哪个用户名下运行来确定。
ps aux | grep apache 或 ps aux | grep httpd 应该会给你答案。
然后,您通常希望将该 Apache 用户名设置为目录及其中所有文件和目录的所有者:
cd /var/www/image
# recursively (all subdirs & files) set owner to www-data for current directory
chown -R www-data .
通常,以上内容就足够了,但如果由于某种原因目录、文件或子目录没有所有者用户名的写权限,则可以通过更改权限以添加该写权限轻松解决,如下所示:
cd /var/www/image
# recursively add "w"rite permissions for the "u"ser (owner) to current directory
chmod -R u+w .
【讨论】:
cd /var/www/image
对于像图片这样的文件,您不需要执行权限:
sudo chmod 664 *
如果你在图像中有目录并且你想申请权限:
sudo find . -type d -exec chmod 755 "{}" \;
这将递归搜索您的目录和 chmod 755 仅所有目录。
同样,以下将仅对所有文件进行 chmod(并忽略目录):
sudo find . -type f -exec chmod 644 "{}" \;
带空格的文件名(感谢 Nicklas B)
find . -type f -print0 | xargs -0 chmod 644
【讨论】:
find . -type f -print0 | xargs -0 chmod 644 应该适用于所有情况。
-exec 中引用文件名(正如我刚刚编辑的那样)
xargs,只是因为我懒得记住奇怪的-exec语法。
将编辑组更改为 www-data
chown -R(所有者):www-data(文件夹)
文件夹权限为775
【讨论】:
cd /var/www
sudo chmod 775 image
系统将提示您输入管理员密码 - 输入,然后点击 [return]。
【讨论】:
更改编辑组可以解决大部分权限问题。
更改 www-data 并将权限设置为 775。
【讨论】: