linux给文件或目录添加apache权限

系统环境:ubuntu11.10/apache2/php5.3.6

在LAMP环境中,测试一个简单的php文件上传功能时,发现/var/log/apache2/error.log中出现如下php警告:

  1. [TueJan3109:40:272012][error][client127.0.0.1]PHPWarning:move_uploaded_file(/home/leotody/32883679.jpeg):failedtoopenstream:Permissiondeniedin/var/www/upload_file.phponline25,referer:http://localhost/info.html
  2. [TueJan3109:40:272012][error][client127.0.0.1]PHPWarning:move_uploaded_file():Unabletomove'/tmp/phps05ssU'to'/home/leotody/32883679.jpeg'in/var/www/upload_file.phponline25,referer:http://localhost/info.html

提示没有访问权限,文件上传的代码如下:
    1. if(file_exists("upload/".$_FILES["file"]["name"]))
    2. {
    3. echo$_FILES["file"]["name"]."alreadyexists.";
    4. }
    5. else
    6. {
    7. if(move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]))
    8. {
    9. echo"Storedin:"."upload/".$_FILES["file"]["name"];
    10. }
    11. else
    12. {
    13. echo"moveerror!";
    14. }
    15. }
页面中显示"move error!",说明move_uploaded_file()函数执行失败。
通过查找资料,发现网上有说是selinux启动的原因,检查系统并未启动selinux,查看upload目录默认权限ls -ld upload,结果为755:
    1. drwxr-xr-x2rootroot40962012-01-3110:59upload
将upload目录权限改为777,sudo chmod 777 upload,再测试上传功能成功。但这种修改权限的方法并不安全。
故可以改upload目录的拥有者为www-data(即apache)
  1. sudochown-Rwww-data:www-dataupload
然后再测试上传功能成功。
    1. drwxr-xr-x2www-datawww-data40962012-01-3110:59upload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值