У меня есть веб-приложение, в котором есть общий файл config.php. В этот файл я включаю функцию, которая собирает сообщения об ошибках (используя set_error_handler
), а затем, в конце выполнения скрипта, сохраняет ошибки в централизованном файле журнала (используя register_shutdown_function
).
Файлы журналов создаются ежедневно в формате Y-m-d.log
. Сценарии Cron запускаются каждые 5 минут как часть приложения, поэтому они обычно являются причиной первых ошибок каждый день, поэтому файл ошибок создается под пользователем cron, который является суперпользователем учетной записи.
Когда наши сотрудники приходят на работу и используют приложение, скрипт запускается под пользователем apache (99). Регистратор ошибок не может записать в файл ошибок, так как он принадлежит суперпользователю.
Одним из возможных решений является использование сценария cron chown
файла журнала для 99, чтобы он мог быть доступен для пользователя apache. Является ли uid 99 принятым соглашением для хостинга apache, или я буду вызывать будущие проблемы с переносимостью, если я жестко закодирую 99 в?
Есть ли другие способы (не прибегая к exec
/ sudo
) сделать мой журнал доступным?
Обновление : у меня нет доступа к серверу в оболочке.
Спасибо, Адам