我们将 LAMP Ubuntu 16.04(Apache 2.4.7)迁移到新的 Ubuntu 20.04(Apache 2.4.41)。
两者都将驱动器安装在 /var/www/intranet/onyar 上。
使用新服务器时,如果我从这个已安装的驱动器下载文件,文件就会损坏。使用旧服务器时,文件可以正常工作。如果我使用旧服务器下载文件,则一切正常。如果我通过 samba 访问文件,则一切正常。
- http://newserver/intranet/onyar/test.xls => 已损坏
- http://oldserver/intranet/onyar/test.xls => 确定
- \\newserver\root\var\www\intranet\onyar\test.xls => 确定
所以这似乎是 Apache 和已安装驱动器之间的问题?如果我尝试使用已安装驱动器之外的文件 (http://newserver/intranet/test.xls),它可以正常工作。
我用 txt、办公类型和 PDF 文件测试了它,全部损坏了。HTML 文件可以运行!
我放了一个简单的“test.txt”文件,里面有字符串“hola”,然后用“http://newserver/intranet/onyar/test.txt”打开它,浏览器显示如下信息:
Last-Modified: Thu, 12 Nov 2020 09:38:46 GMT
ETag: "4-5b3e5adb1be88"
Accept-Ranges: bytes
Content-Length: 4
Cache-Control: max-age=1209600
Expires: Thu, 26 Nov 2020 09:40:37 GMT
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain
holad_ip = dnsResolve(host);
if (isInNet(resolved_ip, "127.0.0.1", "255.255.255.255") || isInNet(resolved_ip, "172.16.0
事实上,如果我按 Ctrl+F5,hola (d_ip = ...) 后面的字符串有时会发生变化:
Last-Modified: Thu, 12 Nov 2020 09:38:46 GMT
ETag: "4-5b3e5adb1be88"
Accept-Ranges: bytes
Content-Length: 4
Cache-Control: max-age=1209600
Expires: Thu, 26 Nov 2020 09:57:01 GMT
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain
holar.</p>
<hr>
<address>Apache/2.4.41 (Ubuntu) Server at 10.80.160.178 Port 80</address>
</body></html>
p>The document h
Last-Modified: Thu, 12 Nov 2020 09:38:46 GMT
ETag: "4-5b3e5adb1be88"
Accept-Ranges: bytes
Content-Length: 4
Cache-Control: max-age=1209600
Expires: Thu, 26 Nov 2020 09:57:01 GMT
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain
holaIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document ha
这些结尾似乎来自其他文件!就像 Apache 不知道文件何时结束并在那里放置一些其他内容一样……
参考:
- fstab://onyar/dades /var/www/intranet/onyar cifs 凭据=/root/.smbcredentials,file_mode=0775,dir_mode=0775,auto 0 0
答案1
看来我受到了这个错误的影响:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900821
对我来说,解决方案是将其放入 /etc/apache2/apache2.conf:
<Directory "/var/www/intranet/onyar">
EnableMMAP Off
</Directory>