Gestern war wieder so ein Tag wo man am besten die Tastatur gar nicht angefasst hätte.
Verzweifelt habe ich 2 Stunden lang nach dem Fehler gesucht, warum Nextcloud sagt es könne nich auf /dev/urandom zugreifen.
Die Fehlermeldung im Frontend:
/dev/urandom ist für PHP nicht lesbar, wovon aus Sicherheitsgründen dringend abgeraten wird. Weitere Informationen hierzu findest Du in unserer Dokumentation.
Die Konfiguration des Apache vHosts lautete:
Serveralias files.example.com
DocumentRoot /var/www/files.example.com/html/
php_admin_value open_basedir /var/www/files.example.com/:/dev/urandom/:/tmp/:/proc/meminfo/
php_admin_value file_uploads 1
php_admin_value upload_tmp_dir /var/www/files.example.com/phptmp/
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
Ich habe die Konfiguration immer und immer wieder angesehen und den Fehler nicht gefunden. Erst als ich irgendwo zufällig das Wort „Datei“ las, musste ich mir an den Kopf fassen. Ich hatte in der Konfiguration statt:
/dev/urandom
versehentlich
/dev/urandom/
angegeben. Da /dev/urandom eine Datei und kein Ordner ist meckerte PHP natürlich zu Recht über fehlende Rechte. Es ist zwar unwahrscheinlich, dass jemand diesen Beitrag bei der Vielzahl von open_basedir Artikel findet UND dann auch noch den gleichen Fehler macht wie ich, aber ich halte das lieber hier mal fest.