Я пытаюсь помочь другу исправить приложение, разработанное им с Элггом. Я знаком с PHP, но совершенно не знаком с Elgg.
Короче говоря, есть две основные проблемы, которые кажутся случайными:
Я думал о том, чтобы просмотреть журналы, чтобы попытаться найти источник проблемы, но есть десятки людей, которые могут использовать его в любой момент времени, и сотни файлов (аудио, изображения, PDF, видео и т. Д.), Которые можно загрузить. в любой день и даже не знал бы, что искать.
Каков умный способ точно определить, что происходит с этими, казалось бы, случайными ошибками в этом проекте Элгга ИЛИ кто-нибудь знает, в чем может быть проблема?
Большое спасибо за Вашу помощь!
Первое, что нужно сделать, это найти ошибки и предупреждения в журнале ошибок сервера, например:
cat path-to-your-error-log | grep Error
Такие ошибки должен быть редким, поэтому должно быть достаточно легко сузить его.
Предполагая, что страница, которая ссылается на файл, не повреждена (и, следовательно, сущность правильно хранится в базе данных), возможно, файлы слишком велики, но приложение неправильно регистрирует ошибку — проверьте max_file_size в php.ini и искать корреляции между проблемой и размером файла. Такие ошибки должны отображаться в журнале ошибок сервера.
В прошлом у нас также были проблемы с ошибками файловых систем или измененными правами доступа к файлам, которые препятствовали доступу к файлам даже после их успешной первоначальной загрузки. Убедитесь, что сами файлы действительно существуют и что в каталоге данных Elgg все в порядке. Если это не так, почините диск. Такие ошибки могут отображаться только как предупреждения, поэтому их сложнее найти.
Другая проблема, которая может возникнуть в большинстве версий Elgg, заключается в изменении часового пояса сервера, поскольку файлы хранятся в каталогах, имена которых основаны на дате первого входа их владельца. Если часовой пояс сервера изменяется, Элгг недостаточно умен, чтобы знать, что структура каталогов тоже должна меняться. Вы можете явно установить часовой пояс в engine / settings.php, используя date_default_timezone_set ().
Других решений пока нет …