Phiên bản đám mây tiếp theo: 23.0.0
Hệ điều hành và phiên bản: Fedora 35
Tôi đang sử dụng hình ảnh Nextcloud Docker. Proxy ngược Nginx được cài đặt trên hệ thống máy chủ. Khối lượng dữ liệu được đặt trên một ổ cứng riêng biệt và chính khối lượng ứng dụng nằm trong thư mục gốc trên SSD.Tôi đã nhận thấy vấn đề này từ phiên bản 22.x: nếu tôi sao chép các tệp lớn bằng WebDAV, dung lượng trên phân vùng gốc của SSD sẽ hết rất nhanh (/tmp của hệ thống máy chủ sử dụng tmpfs). Đồng thời, sao chép không thành công và trong nhật ký, tôi thấy lỗi sau do dung lượng ổ đĩa gốc đã đầy:
[PHP] Lỗi: fread(): Ghi 8192 byte không thành công với errno=28 Không còn chỗ trống trên thiết bị tại /var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php#55
ĐẶT /cloud/remote.php/webdav/Videos/file.mkv
Tôi đã cố gắng tìm kiếm một vấn đề tương tự trên diễn đàn và tìm thấy nguyên nhân PHP gây ra sự cố và giải pháp là sử dụng một đường dẫn khác cho sys_temp_dir. Tôi đã thử sử dụng php.ini sau:
sys_temp_dir = "/var/www/html/data/tmp"
/var/www/html/data nằm trên một ổ cứng khác, vì vậy điều này sẽ giải quyết được vấn đề.
Tôi đặt cái này trong docker-compose.yml của mình:
khối lượng:
- ./php.ini:/usr/local/etc/php/conf.d/php_custom.ini
nhưng điều đó không giải quyết được vấn đề. Tôi quyết định rằng có thể đáng để chuyển toàn bộ thư mục /tmp của hình ảnh sang tmpfs:
tmpfs:
- /tmp
nhưng điều đó cũng không mang lại kết quả gì, vì hóa ra /tmp của hình ảnh luôn trống, có vẻ như Nextcloud Docker không sử dụng nó.
Vì vậy, lý do cho việc tiêu thụ nhiều không gian đĩa là gì? Thư mục này nằm ở đâu trong hình ảnh Nextcloud mà nó sử dụng cho các tệp tạm thời khi sao chép?