UPLOAD_ERR_CANT_WRITE但其他文件正在上传

时间:2013-11-13 11:05:20

标签: php apache ubuntu

我在服务器中遇到了一种非常奇怪的行为。

我可以上传任何小于1MB的文件而没有问题,但那些更大的文件会给我一个错误UPLOAD_ERR_CANT_WRITE == 7.

tmp /文件夹具有权限,因为我可以上传其他文件。

我的PHP.INI上的配置似乎很好,我之前使用phpmyadmin上传了大于1MB的文件并且它有效。

PHP.INI

  • file_uploads On
  • post_max_size 200M
  • max_execution_time 30
  • memory_limit 128M
  • max_file_uploads 20
  • upload_max_filesize 200M
  • upload_tmp_dir / tmp

我缺少什么?在我的本地机器完全相同的配置:S

我使用的是ubuntu服务器13.04 PHP 5.4.9和Apache 2.2.22

肯定是有史以来最愚蠢的事情,我在这浪费了2个小时,我已经在php.net检查过大量的文档,但没有运气。任何帮助都非常受欢迎。

感谢!!!

更新10-01-2014:仍然没有运气我无法解决它。

3 个答案:

答案 0 :(得分:20)

感谢您的所有答案,我发现了错误。

服务器是由OVH安装程序完成的Ubuntu安装。我不知道他们会以如此糟糕的方式创建分区:

  • 使用的文件系统大小可用
  • 上使用%
  • 溢出1.0M 136K 888K 14%/ tmp
  • / dev / md2 1.8T 13G 1.7T 1%/ home

所以我所做的就是在php.ini中将upload_tmp_dir修改为另一个带空格的文件夹......

可怕我浪费了这么多时间,我从没想过实际上是一个空间问题,因为在HD我有2TB!

再一次感谢并希望这对其他人有用。

答案 1 :(得分:2)

从/ tmp删除或移动所有文件并卸载设备,使其使用/ tmp的普通分区。

 mkdir /usr/tmp
 mv /tmp/* /usr/tmp
 sudo umount -l /tmp
 mv /usr/tmp/* /tmp

答案 2 :(得分:1)

这可能是由于您的memory_limit配置造成的。尝试用256M替换。如果它工作,你应该检查你的代码,以减少内存使用。

如果是您的权限配置,您会看到:

ls -la /yourUploadDirectory

您应该看到类似的内容:

drwxr-xr-x 65 user group     4096 nov 13 09:47 .
drwxr-xr-x  3 user   group       4096 ago  7 18:09 ..
group目录(第一行)的

.应为www-data。如果不这样做:

chown yourUser:www-data /yourUploadDirectory

同样drwxr-xr-x应为drwxrwxr-x。如果不这样做:

chmod 0775 /yourUploadDirectory

现在你已经完成了上传。