Files
occweb/README.ru.md
T

4.1 KiB

⚠️ Устарело ⚠️ OCCWeb terminal

Read in English.

Веб-терминал для администраторов для запуска occ-команд Nextcloud

occweb

⚠️ Устарело ⚠️

Поскольку Nextcloud не имеет встроенной поддержки асинхронных операций (из-за использования PHP), это приложение считается устаревшим и больше не будет поддерживать будущие версии Nextcloud (19+). Автору не удалось найти способ реализовать полноценную поддержку интерактивных и долгих occ-задач в веб-терминале без введения дополнительных зависимостей (например, через websockets), а отсутствие настоящей асинхронности может привести к серьёзным проблемам на больших инсталляциях. Этот issue объясняет, почему разработчик решил больше не поддерживать это приложение.

Установка

Поместите это приложение в nextcloud/apps/

Режим SQL-запросов

Введите sql в терминале, чтобы переключиться в режим SQL-запросов и выполнять произвольные SQL-запросы напрямую к базе данных Nextcloud (только для администраторов). Запросы разделяются ;. Используйте Shift+Enter для перехода на новую строку и Enter, чтобы отправить весь блок одним запросом — это важно для скриптов вида SET vars.x = 'value'; SELECT current_setting('vars.x');, так как все запросы, отправленные одним блоком, выполняются в рамках одного соединения (сессии) с базой данных. Введите occ, чтобы вернуться в обычный режим occ-команд.

⚠️ Для DELETE/UPDATE нет отмены — внимательно проверяйте, что вы собираетесь выполнить, желательно сначала на некритичной записи/пользователе.

⚠️ Предупреждения ⚠️

  • Это приложение не является настоящим интерактивным терминалом и не поддерживает долгие задачи. Поэтому на крупных инсталляциях команды вроде occ files:scan могут завершаться по таймауту с ошибкой.
  • Не используйте occ maintenance:mode --on, это очевидно...

Обновление кода на сервере

После того как новый код скопирован/спуллен в nextcloud/apps/occweb/, обязательно перезапустите PHP, иначе изменения не применятся. occ app:disable/app:enable не помогает — эта команда не сбрасывает opcode-кэш PHP, из-за чего может продолжать работать старая закэшированная версия кода (характерный симптом — маршруты внезапно отвечают 404). Перезапустите сам процесс PHP, например:

sudo systemctl restart php8.3-fpm   # укажите свою версию PHP
sudo systemctl restart apache2      # если PHP работает как модуль Apache

Планы (TODO):

См. открытые issues