PHP调用move_uploaded_file()提示 failed to open stream: Permission denied(Linxux环境,以Ubuntu12.04为例)
2013-11-18 20:47
721 查看
在使用PHP上传文件之后,我们有时候还需要移动到特定的文件夹,这时候就要调用move_uploaded_file()函数,可是会出现如下错误:
Warning: move_uploaded_file(/var/www/cloud/upload_files/temp.txt): failed to open stream: Permission denied in /var/www/cloud/upload.php on line 27
Warning: move_uploaded_file(): Unable to move '/tmp/phpNgjlXX' to '/var/www/cloud/upload_files/temp.txt' in /var/www/cloud/upload.php on line 27
这是因为没有在/var/www/cloud/upload_files/目录下创建文件的权限,需要修改该目录的权限。可以简单地改为777,但不是很安全,也可以参照stackoverflow上的解决方法,先找到Apache进程的所有者,可以按照参考资料获取(我没有获取到)或者运行新的PHP脚本。
或者:
我获得的用户为www-data,该用户属于www-data组,然后修改目录的所有者
参考资料:
StackOverflow1
StackOverflow2
Warning: move_uploaded_file(/var/www/cloud/upload_files/temp.txt): failed to open stream: Permission denied in /var/www/cloud/upload.php on line 27
Warning: move_uploaded_file(): Unable to move '/tmp/phpNgjlXX' to '/var/www/cloud/upload_files/temp.txt' in /var/www/cloud/upload.php on line 27
这是因为没有在/var/www/cloud/upload_files/目录下创建文件的权限,需要修改该目录的权限。可以简单地改为777,但不是很安全,也可以参照stackoverflow上的解决方法,先找到Apache进程的所有者,可以按照参考资料获取(我没有获取到)或者运行新的PHP脚本。
<?php echo exec('whoami'); ?>
或者:
<?php echo getenv('APACHE_RUN_USER'); ?>
我获得的用户为www-data,该用户属于www-data组,然后修改目录的所有者
chown www-data /var/www/cloud/upload_files然后修改目录的访问权限为755,即可以解决问题。
chmod 755 /var/www/cloud/upload_files
参考资料:
StackOverflow1
StackOverflow2
相关文章推荐
- PHP+MySQL开发技术详解—学习笔记
- PHP页面参数传递
- ntp对时服务器配置
- Cisco 交换机配置文件恢复实践--TFTP 方式
- PHP动态加载html文件之后<head>中内容全部移动到<body>中导致页面头部存在空白
- GetTextExtentPoint32--获取字符串在屏幕上长度
- ThinkPHP第十七天(隐藏index.php和简短路径配置)
- Ubuntu下安装vsftp遇到的一些问题
- Socket层实现系列 — getsockname()和getpeername()的实现
- Socket层实现系列 — getsockname()和getpeername()的实现
- 读取大文件 php
- PHP学习笔记(处理文件和操作系统)--路径
- 生成php随机数
- PHP 抽象类
- myTestPractice 母版子页Ajax
- tiny6410内核下载(tftp)
- zend studio 10破解/汉化
- zendframework太慢了!
- 关于php udp当服务端接受不同数据的代码
- 基于phpBB搭建技术论坛