Это зависит от того, какой SAPI вы используете. На странице документации для register_shutdown_function() указано, что на некоторых серверах, таких как Apache, изменяется рабочий каталог script.
Файл записывается, но не там, где находится ваш файл .php (DocumentRoot), но в папке сервера Apache (ServerRoot).
Чтобы предотвратить это, вам нужно что-то вроде hotwire изменить рабочую папку. Просто, когда ваш script начинает выполнение (в первых нескольких строках), вам нужно как-то сохранить реальную рабочую папку. Создание константы с помощью define() идеально подходит для этого.
define('WORKING_DIRECTORY', getcwd());
И вам нужно изменить часть функции shutdown следующим образом: