Общее руководство по устранению неполадок ownCloud находится на официальном веб-сайте.
Файлы журнала ownCloud в /var/www/owncloud/data/owncloud.log
были пустыми в моем случае.
Журналы ошибок PHP5 по умолчанию отключены (по крайней мере на Raspbian). Вы должны включить их в /etc/php5/apache2/php.ini
, установив для log_errors
значение On и указав путь для файла журнала в error_log
. После этого вам нужно перезапустить ваш веб-сервер, чтобы изменения вступили в силу - я пропустил весь этот шаг.
Журналы ошибок Apache хранятся в /var/log/apache2/error.log
(в Raspbian - путь может сильно отличаться между дистрибутивами). Журналы чередуются при перезапуске или каждые 24 часа, при этом предыдущий журнал переименовывается в error.log.1
, а журнал перед этим архивируется с именем error.log.2.gz
и т.д., Для журналов более 10+. Их можно посмотреть так:
sudo less /var/log/apache2/error.log
sudo less /var/log/apache2/error.log.1
sudo zcat /var/log/apache2/error.log.2.gz | less
(обратите внимание на другую команду для gzipped журналов).
Журналы ошибок Apache имели много строк, подобных этим:
[Суббота, 04 марта 14: 32: 15.682697 2017] [: error] [pid 12325] [client 10.15.1.19:56016] Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданный «41» (T_LNUMBER), ожидание «)» в /var /www /owncloud /3rdparty /phpseclib /phpseclib /phpseclib /Crypt /Hash.php в строке 385
Покопавшись немного дальше в истории, действительно оказалось, что эта ошибка начала появляться, когда система впервые появилась после отключения питания, что намекает на повреждение файловой системы.
Данный файл является частью установки ownCloud, поэтому я подумал, что проще всего будет переустановить пакет ownCloud (я выбрал путь deb).
Так как ownCloud с тех пор выпустил новую версию, 9.1.4 (мой сервер все еще на 9.1.3), переустановка не удалась, потому что оригинальный пакет больше не был доступен в его старом местоположении.
Поэтому я решил рискнуть и запустить обновление, которое, как я полагал, восстановит отсутствующий файл таким же образом. (Вероятно, переустановка также сработала бы и восстановила бы службу быстрее.)
После обновления, по крайней мере, ownCloud приветствовал меня уведомлением о том, что он находится в режиме обслуживания. Следующие команды завершили обновление:
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
sudo -u www-data php /var/www/owncloud/occ upgrade
(обратите внимание, что путь к occ
должен быть указан , иначе он не будет найден).
После этого мне все еще нужно было войти в систему с учетной записью администратора, перейти в «Приложения» и снова включить мои приложения.
И сервер вернулся из мертвых.