Error: Cannot modify header information

Hallo,

in my reinstallation I have a previously unsolvable problem:
On a Raspberry Pi I installed and updated NextcloudPi - see below.
Two 4Gb hard drives were connected to the Raspberry via USB and mounted to a software Raid1 array.
The config.php looked like this after the adjustment:

<?php
$CONFIG = array (
  'passwordsalt' => 'xxx',
  'secret' => 'xxx',
  'trusted_domains' =>
  array (
    0 => 'localhost',
    5 => 'nextcloudpi.local',
    7 => 'nextcloudpi',
    8 => 'nextcloudpi.lan',
    11 => '93.131.85.253',
    1 => '192.168.178.33',
    3 => 'mein.ddns.net',
    2 => 'tmein.ddns.net',
    12 => 'mein.ddns.net',
  ),
  'datadirectory' => '/media/raid/nextcloud/ncdata',
  'dbtype' => 'mysql',
  'version' => '20.0.2.2',
  'updater.release.channel' => 'stable',
  'overwrite.cli.url' => 'https://mein.ddns.net/',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'ncadmin',
  'dbpassword' => 'xxx',
  'installed' => true,
  'instanceid' => 'xxx',
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
  array (
    'host' => '/var/run/redis/redis.sock',
    'port' => 0,
    'timeout' => 0.0,
    'password' => 'xxx',
  ),
  'tempdirectory' => '/media/raid/nextcloud/ncdata/tmp',
  'mail_smtpmode' => 'sendmail',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_from_address' => 'admin',
  'mail_domain' => 'ownyourbits.com',
  'preview_max_x' => '2048',
  'preview_max_y' => '2048',
  'jpeg_quality' => '60',
  'overwriteprotocol' => 'https',
  'loglevel' => '2',
  'log_type' => 'file',
  'maintenance' => false,
  'logfile' => '/media/raid/nextcloud/ncdata/nextcloud.log',
  'logtimezone' => 'Europe/Berlin',
);

Unfortunately, it is not possible to synchronize.
No files are uploaded, only folders are created.
An error message from the log reads:

Error	PHP	Error: Cannot modify header information - headers already sent by (output started at /var/www/nextcloud/3rdparty/sabre/http/lib/Sapi.php:132) at /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php#691
    <<closure>>
    OC\Log\ErrorHandler::onError(2, "Cannot modi ... )", "/var/www/ne ... p", 691, { string: "X ... "})
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 691:
    header("X-Hash-MD5: ... 8")
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 189:
    OCA\DAV\Connector\Sabre\File->header("X-Hash-MD5: ... 8")
    <<closure>>
    OCA\DAV\Connector\Sabre\File->OCA\DAV\Connector\Sabre\{closure}("*** sensiti ... *")
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 71:
    call_user_func(Closure {}, "*** sensiti ... *")
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_close()
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 132:
    fclose(null)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 75:
    Icewind\Streams\Wrapper->stream_close()
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_close()
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 132:
    fclose(null)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 75:
    Icewind\Streams\Wrapper->stream_close()
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
    OC\Files\Stream\HashWrapper->stream_close()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")

Another error message:

Error	no app in context	Sabre\DAV\Exception\BadRequest: Expected filesize of 112192 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 8192 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php - line 155:
    OCA\DAV\Connector\Sabre\File->put(null)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 1104:
    OCA\DAV\Connector\Sabre\Directory->createFile("KMUPD10.mdx", null)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 527:
    Sabre\DAV\Server->createFile("files/jan.t ... x", null, null)
    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
    Sabre\DAV\CorePlugin->httpPut(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
    Sabre\DAV\Server->emit("method:PUT", [ Sabre\HTTP ... }])
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
    Sabre\DAV\Server->start()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")

Some more information about my installation:

NextCloudPi version  v1.36.3
NextCloudPi image    NextCloudPi_11-27-20
distribution         Debian GNU/Linux 10 \n \l
automount            yes
USB devices          sda sdb
datadir              /media/raid/nextcloud/ncdata
data in SD           no
data filesystem      ext2/ext3
data disk usage      1.3G/3.6T
rootfs usage         2.5G/29G
swapfile             /var/swap
dbdir                /var/lib/mysql
Nextcloud check      ok
Nextcloud version    20.0.2.2
HTTPD service        up
PHP service          up
MariaDB service      up
Redis service        up
Postfix service      up
internet check       ok
port check 80        open
port check 443       open
IP                   192.168.178.33
gateway              192.168.178.1
interface            eth0

Information about my RAID:

/dev/md0:
           Version : 1.2
     Creation Time : Sat Jun 12 23:09:53 2021
        Raid Level : raid1
        Array Size : 3906885440 (3725.90 GiB 4000.65 GB)
     Used Dev Size : 3906885440 (3725.90 GiB 4000.65 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Jun 14 22:06:53 2021
             State : clean, resyncing
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

     Resync Status : 73% complete

              Name : nextcloudpi:0  (local to host nextcloudpi)
              UUID : c4d37eda:f8de28f0:2d579ef4:61758582
            Events : 122579

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

Inhalt von /etc/fstab:

PARTUUID=c4f7eed2-01  /boot           vfat    defaults          0       2
PARTUUID=c4f7eed2-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
/dev/md0              /media/raid     ext4    defaults          0       0

Can anyone give me a tip on how to get my cloud working?
Thanks in advance.
Jan

Looks like a permission issue…
I’d try creating a folder /media/raid/ncdata
give ownership to www-data of that folder and edit config to reflect the new path.

Also maybe in fstab replace “defaults” with “users,rw” or “user=www-data,rw”

Thank you very much for the feedback.
I have made the following steps in detail:

sudo su
mkdir /media/raid/ncdata/tmp
touch /media/raid/ncdata/.ocdata

chown -R www-data:www-data /media/raid/ncdata
nano /var/www/nextcloud/config/config.php
old:  'datadirectory' => '/media/raid/nextcloud/ncdata',
new:  'datadirectory' => '/media/raid/ncdata',

old:  'tempdirectory' => '/media/raid/nextcloud/ncdata/tmp',
new:  'tempdirectory' => '/media/raid/ncdata/tmp',

old:  'logfile' => '/media/raid/nextcloud/ncdata/nextcloud.log',
new:  'logfile' => '/media/raid/ncdata/nextcloud.log',
strg+o strg+x

nano /etc/fstab
old:  /dev/md0              /media/raid     ext4    defaults          0       0
new:  /dev/md0              /media/raid     ext4    users,rw         0       0
strg+o strg+x
reboot

Unfortunately, the problem could not be solved.
From the log:

Fatal	webdav	Sabre\DAV\Exception\ServiceUnavailable: Could not open file
 /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 90:
OCA\DAV\Connector\Sabre\File->get()
/var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
Sabre\DAV\CorePlugin->httpGet(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
Sabre\DAV\Server->emit("method:GET", [ Sabre\HTTP ... }])
/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
Sabre\DAV\Server->start()
/var/www/nextcloud/apps/dav/lib/Server.php - line 332:
Sabre\DAV\Server->exec()
/var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
OCA\DAV\Server->exec()
/var/www/nextcloud/remote.php - line 167:
require_once("/var/www/ne ... p")
Error	PHP	Error: fopen(/media/raid/ncdata/nina/files/Familie/Apps/Windows Grundausstattung/Druckertreiber/Kx_8.1.1109_UPD_Signed_EU/en/64bit/KDS333510.da_): failed to open stream: No such file or directory at /var/www/nextcloud/lib/private/Files/Storage/Local.php#356
    <<closure>>
    OC\Log\ErrorHandler::onError(2, "fopen(/medi ... y", "/var/www/ne ... p", 356, { path: "fil ... "})
    /var/www/nextcloud/lib/private/Files/Storage/Local.php - line 356:
    fopen("/media/raid ... _", "r")
    /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php - line 300:
    OC\Files\Storage\Local->fopen("files/Famil ... _", "r")
    /var/www/nextcloud/apps/files_sharing/lib/SharedStorage.php - line 296:
    OC\Files\Storage\Wrapper\Wrapper->fopen("files/Famil ... _", "r")
    /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php - line 300:
    OCA\Files_Sharing\SharedStorage->fopen("Apps/Window ... _", "r")
    /var/www/nextcloud/lib/private/Files/View.php - line 1165:
    OC\Files\Storage\Wrapper\Wrapper->fopen("Apps/Window ... _", "r")
    /var/www/nextcloud/lib/private/Files/View.php - line 1001:
    OC\Files\View->basicOperation("fopen", "/Familie/Ap ... _", [ "read"], "r")
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 434:
    OC\Files\View->fopen("Familie/App ... _", "r")
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 90:
    OCA\DAV\Connector\Sabre\File->get()
    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
    Sabre\DAV\CorePlugin->httpGet(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
    Sabre\DAV\Server->emit("method:GET", [ Sabre\HTTP ... }])
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
    Sabre\DAV\Server->start()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")
Error	PHP	Error: Cannot modify header information - headers already sent by (output started at /var/www/nextcloud/3rdparty/sabre/http/lib/Sapi.php:132) at /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php#691
    <<closure>>
    OC\Log\ErrorHandler::onError(2, "Cannot modi ... )", "/var/www/ne ... p", 691, { string: "X ... "})
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 691:
    header("X-Hash-MD5: ... 1")
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 189:
    OCA\DAV\Connector\Sabre\File->header("X-Hash-MD5: ... 1")
    <<closure>>
    OCA\DAV\Connector\Sabre\File->OCA\DAV\Connector\Sabre\{closure}("*** sensiti ... *")
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 71:
    call_user_func(Closure {}, "*** sensiti ... *")
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_close()
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 132:
    fclose(null)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 75:
    Icewind\Streams\Wrapper->stream_close()
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_close()
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 132:
    fclose(null)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 75:
    Icewind\Streams\Wrapper->stream_close()
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
    OC\Files\Stream\HashWrapper->stream_close()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")
Error	no app in context	Sabre\DAV\Exception\BadRequest: Expected filesize of 10000000 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 8192 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php - line 155:
    OCA\DAV\Connector\Sabre\File->put(null)
    /var/www/nextcloud/apps/dav/lib/Upload/UploadFolder.php - line 46:
    OCA\DAV\Connector\Sabre\Directory->createFile("0000000000000000", null)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 1104:
    OCA\DAV\Upload\UploadFolder->createFile("0000000000000000", null)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 527:
    Sabre\DAV\Server->createFile("uploads/jan ... 0", null, null)
    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
    Sabre\DAV\CorePlugin->httpPut(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
    Sabre\DAV\Server->emit("method:PUT", [ Sabre\HTTP ... }])
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
    Sabre\DAV\Server->start()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")
Error	PHP	Error: fread(): Unable to create temporary file, Check permissions in temporary files directory. at /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php#91
    <<closure>>
    OC\Log\ErrorHandler::onError(2, "fread(): Un ... .", "/var/www/ne ... p", 91, { count: 8192})
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 91:
    fread(null, 8192)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 64:
    Icewind\Streams\Wrapper->stream_read(8192)
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_read(8192)
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 91:
    fread(null, 8192)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 64:
    Icewind\Streams\Wrapper->stream_read(8192)
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_read(8192)
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 91:
    fread(null, 8192)
    /var/www/nextcloud/lib/private/Files/Stream/HashWrapper.php - line 64:
    Icewind\Streams\Wrapper->stream_read(8192)
    <<closure>>
    OC\Files\Stream\HashWrapper->stream_read(8192)
    /var/www/nextcloud/3rdparty/icewind/streams/src/Wrapper.php - line 91:
    fread(null, 8192)
    /var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php - line 98:
    Icewind\Streams\Wrapper->stream_read(8192)
    <<closure>>
    Icewind\Streams\CallbackWrapper->stream_read(8192)
    /var/www/nextcloud/lib/private/Files/Storage/Local.php - line 560:
    file_put_contents("/media/raid ... t", null)
    /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php - line 631:
    OC\Files\Storage\Local->writeStream("uploads/359 ... t", null, null)
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 207:
    OC\Files\Storage\Wrapper\Wrapper->writeStream("uploads/359 ... t", null)
    /var/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php - line 155:
    OCA\DAV\Connector\Sabre\File->put(null)
    /var/www/nextcloud/apps/dav/lib/Upload/UploadFolder.php - line 46:
    OCA\DAV\Connector\Sabre\Directory->createFile("0000000000000000", null)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 1104:
    OCA\DAV\Upload\UploadFolder->createFile("0000000000000000", null)
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 527:
    Sabre\DAV\Server->createFile("uploads/jan ... 0", null, null)
    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
    Sabre\DAV\CorePlugin->httpPut(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
    Sabre\DAV\Server->emit("method:PUT", [ Sabre\HTTP ... }])
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
    Sabre\DAV\Server->start()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")
Fatal	webdav	Sabre\DAV\Exception\ServiceUnavailable: Could not open file
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 90:
    OCA\DAV\Connector\Sabre\File->get()
    /var/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
    Sabre\DAV\CorePlugin->httpGet(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
    Sabre\DAV\Server->emit("method:GET", [ Sabre\HTTP ... }])
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
    Sabre\DAV\Server->invokeMethod(Sabre\HTTP\Request {}, Sabre\HTTP\Response {})
    /var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
   Sabre\DAV\Server->start()
    /var/www/nextcloud/apps/dav/lib/Server.php - line 332:
    Sabre\DAV\Server->exec()
    /var/www/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
    OCA\DAV\Server->exec()
    /var/www/nextcloud/remote.php - line 167:
    require_once("/var/www/ne ... p")

And many, many more…

I would be very happy if a solution could be found. Even a new installation was no solution so far.

pi@nextcloudpi:/media/raid $ ls -l
total 1048600
drwx------ 2 root     root          16384 Jun 12 23:10 lost+found
drwxrwx--- 6 www-data www-data       4096 Jun 16 18:01 ncdata
-rw------- 1 root     root     1073741824 Jun 16 21:01 swap

I thank you in advance for any feedback.
Kind regards
Jan