php关于上传图片到服务器端出现permission denied的情况该怎么办

lz刚刚才接触php开发,在这里总结一下自己的一些经验吧

lz在实现把图片上传到服务器端并生成缩略图这个功能的时候,由于涉及到文件的创建,浏览器会报错:

Warning: imagejpeg(): Unable to open 'uploads/image_50/des_big.jpg' for writing: Permission denied in/var/www/html/baotuan/baotuan/test/resizeImage1.php on line 21

Warning
: imagejpeg(): Unable to open 'uploads/image_220/des_big.jpg' for writing: Permission denied in/var/www/html/baotuan/baotuan/test/resizeImage1.php on line 22

Warning
: imagejpeg(): Unable to open 'uploads/image_350/des_big.jpg' for writing: Permission denied in/var/www/html/baotuan/baotuan/test/resizeImage1.php on line 23

Warning
: imagejpeg(): Unable to open 'uploads/image_800/des_big.jpg' for writing: Permission denied in/var/www/html/baotuan/baotuan/test/resizeImage1.php on line 24

仔细一看是因为没有权限,这是因为php的执行者是apache的用户,那么apache的用户是谁呢?

我们可以先在你的php文件里echo exec(‘whoami’);获得文件的执行者,我的执行者是www-data。

在网上搜了好多种方法之后,有说更改文件用户的,由于默认文件用户是root,可以更改成www-data,具体如下

chown www-data -R /var/www/html/文件目录

chmod 775 -R /var/www/html/文件目录

成功!!

另外一种方法:修改该目录所属的组

chgrp www-data -R /var/www/html/文件目录

chmod 775 -R /var/www/html/文件目录

同样成功!!



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值