Apache在CIFSnetworking驱动器上有2GB的文件限制?

build立:

  1. Windows和Ubuntu服务器托pipe在VMware ESXi中
  2. 我有一个6GB的Windows共享文件
  3. Windows共享使用smbmount挂载在Ubuntu上
  4. 指向6GB文件的符号链接是在public_html目录下创build的,这个目录可以被Apache读取

问题:

  1. wget得到一个错误Connection closed at byte 2130706432. Retrying. 下载完2130706432字节(正好2032MB,每次都是一样的)
  2. Apache返回206 Partial Content而不会在日志中显示任何错误
  3. 同样的错误,即使我从localhost下载
  4. 使用Firefox代替wget时类似的错误
  5. 没有错误,如果我md5sumcp在Ubuntu上的文件,这表明smbmount和Windows服务器与6GB的文件确定。
  6. 如果Apache从本地磁盘提供6GB文件,则不会出现错误,这表明Apache在处理6GB文件时没有问题。

任何想法为什么Apache / symlink / smbmount / Windows将一起使用时会导致错误? 我该如何解决这个问题?

使用的软件:

  • VMware ESXi 4 Update 1
  • Windows Server 2008 R2
  • Ubuntu 8.04服务器,vmxnet3
  • Apache 2.2.8
  • mount.cifs 1.10-3.0.28a(由smbmount -V返回)

编辑:如果我使用CentOS 4.8 x64而不是Ubuntu 8.04,Apache将断开字节2147483647(2GiB – 1byte)而不是2130706432(2GiB – 16MiB)。

我有一个类似的问题,我工作, 看看这个错误报告 。 这个问题似乎与EnableSendfile,所以把这个在你的Apacheconfiguration的虚拟主机或全局configuration:

EnableSendfileclosures

我很确定这是Windows共享的问题,您需要将块大小设置为4k,并允许它以一种客户端可以正确解释的方式共享它。 不幸的是,这可能需要重新格式化,不好意思。

你为什么不使用不同的方法分发文件? 6GiB是很多,没有MD5sum检查,它可能是错误的基础。 在这种情况下是否可以通过分布式系统交付?

你提到smbmount是如何安装cifs共享的。 smbmount和mount.cifs是2个不同的动物。 smbmount的文件限制为2GB 。 但是smbmount是老式的做法,已经被mount.cifs取代了。