66 lines
4.1 KiB
Markdown
66 lines
4.1 KiB
Markdown
# ⚠️ Устарело ⚠️ OCCWeb terminal
|
|
|
|
*Read in [English](README.md).*
|
|
|
|
### Веб-терминал для администраторов для запуска occ-команд Nextcloud
|
|
|
|

|
|
|
|
|
|
## ⚠️ Устарело ⚠️
|
|
|
|
Поскольку Nextcloud не имеет встроенной поддержки асинхронных операций
|
|
(из-за использования PHP), это приложение считается устаревшим и больше не
|
|
будет поддерживать будущие версии Nextcloud (19+). Автору не удалось найти
|
|
способ реализовать полноценную поддержку интерактивных и долгих occ-задач в
|
|
веб-терминале без введения дополнительных зависимостей (например, через
|
|
websockets), а отсутствие настоящей асинхронности может привести к серьёзным
|
|
проблемам на больших инсталляциях.
|
|
[Этот issue](https://github.com/nextcloud/server/issues/16726) объясняет,
|
|
почему разработчик решил больше не поддерживать это приложение.
|
|
|
|
|
|
## Установка
|
|
|
|
Поместите это приложение в **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, например:
|
|
|
|
```bash
|
|
sudo systemctl restart php8.3-fpm # укажите свою версию PHP
|
|
sudo systemctl restart apache2 # если PHP работает как модуль Apache
|
|
```
|
|
|
|
## Планы (TODO):
|
|
См. [открытые issues](https://github.com/Adphi/occweb/issues)
|