12

我在我的服务器中面临一个非常奇怪的行为。

我可以毫无问题地上传任何小于 1MB 的文件,但那些更大的文件会返回错误 UPLOAD_ERR_CANT_WRITE == 7。

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

我的 PHP.INI 上的配置似乎很好,我之前确实使用 phpmyadmin 上传了大于 1MB 的文件并且它工作正常。

PHP.INI

  • 文件上传开启
  • post_max_size 200M
  • 最大执行时间 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 上检查了很多文档,但没有运气。任何帮助都非常受欢迎。

谢谢!!!

2014 年 10 月 1 日更新:仍然没有运气,我无法修复它。

4

3 回答 3

22

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

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

  • 已使用的文件系统大小可用使用百分比已安装在
  • 溢出 1.0M 136K 888K 14% /tmp
  • /dev/md2 1.8T 13G 1.7T 1% /home

所以我所做的是在 php.ini 中修改 upload_tmp_dir 到另一个有空间的文件夹......

太糟糕了,我浪费了这么多时间,我从没想过实际上是空间问题,因为在 HD 中我有 2TB!

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

于 2014-01-15T10:40:27.260 回答
2

从 /tmp 删除或移动所有文件并卸载设备,以便它使用 /tmp 的正常分区。

 mkdir /usr/tmp
 mv /tmp/* /usr/tmp
 sudo umount -l /tmp
 mv /usr/tmp/* /tmp
于 2015-06-16T14:37:59.193 回答
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

现在您已完成上传。

于 2013-11-13T11:09:49.917 回答