Apache 2.4环境下PHP调用move_uploaded_file失败:权限拒绝问题求助
Apache 2.4环境下PHP调用move_uploaded_file失败:权限拒绝问题求助
最近做项目的时候碰到个头疼的问题:调用PHP的move_uploaded_file函数一直失败,控制台抛出了一堆权限相关的错误信息:
Notice: PHP Request Startup: file created in the system's temporary directory in Unknown on line 0 Warning: move_uploaded_file(../Pictures/1n0): Failed to open stream: Permission denied in /var/www/backend/Controllers/News.controller.php on line 114 move_uploaded_file(): Unable to move "/tmp/phpSPAnSj" to "../Pictures/1n0" in /var/www/backend/Controllers/News.controller.php on line 114
我已经尝试了几种修复方法,但都没解决问题:
- 修改了目标目录
/var/www/backend/Pictures的所有者和权限,当前该目录的权限信息如下:
# ls -la /var/www/backend: drwxr-xr-x. 10 root root 4096 Oct 14 20:26 . drwxr-xr-x. 8 root root 4096 Oct 18 12:18 .. ... drwxr-xr-x. 2 nobody root 4096 Oct 13 14:45 Pictures
- 查看了系统临时目录
/tmp的权限,信息如下:
# ls -la /: drwxr-xr-x. 19 root root 4096 Oct 16 14:43 . drwxr-xr-x. 19 root root 4096 Oct 16 14:43 .. ... drwxrwxrwt. 14 root root 280 Oct 18 12:28 tmp
- 尝试修改
php.ini中的upload_tmp_dir配置项为/var/www/tmp_upload,但Apache仍然把临时上传文件存放在/tmp目录里,这个配置没生效。
想请教各位大神,我该怎么配置权限,让Apache能够正常移动这些临时上传的文件呢?
备注:内容来源于stack exchange,提问作者MHSarmadi
相关产品推荐
相关产品推荐

