Files
crm.clientright.ru/NEXTCLOUD_BUTTON_FIX_REDIS.md
Fedor cd90b0d58a feat: Добавлен инструмент генерации документов для AI Ассистента
- Создан API create_document_with_text.php для создания DOCX/XLSX/PPTX с текстом от AI
- Поддержка Markdown форматирования (заголовки, жирный, курсив, списки, код)
- Установлен PHPWord для красивого форматирования документов
- Исправлены пути сохранения (crm2/CRM_Active_Files/... без /crm/ в начале)
- Замена пробелов на подчеркивания в именах папок
- Создана документация для AI и разработчиков
- Добавлены API для работы с шаблонами Nextcloud
2025-11-12 19:46:06 +03:00

90 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🐛 FIX: Кнопка "Через Nextcloud" → Ошибка подключения к API
**Дата:** 2 ноября 2025
**Проблема:** Кнопка "📚 Через Nextcloud" показывала ошибку "Ошибка подключения к API"
## 🔍 Диагностика
### Симптомы:
1.`nextcloud_open.php` **работал в CLI** (возвращал правильный JSON)
2. ❌ Через веб (curl/браузер) возвращал **HTTP 500 (пустой ответ)**
3. ❌ JavaScript fetch() получал пустой ответ → показывал ошибку
### Причина:
**Redis PHP extension** был установлен только для PHP 7.2, а Apache использовал **PHP 7.3**!
```bash
# PHP CLI (работало):
php -v # PHP 7.2 (имеет redis extension)
# Apache (не работало):
phpinfo() # PHP 7.3 (НЕТ redis extension!)
```
## ✅ Решение
### 1. Обнаружили модуль .so:
```bash
find /opt/php73 -name "redis.so"
# /opt/php73/lib/php/extensions/no-debug-non-zts-20180731/redis.so
```
### 2. Создали конфиг:
```bash
echo "extension=redis.so" > /opt/php73/mods-available/redis.ini
ln -s /opt/php73/mods-available/redis.ini /opt/php73/conf.d/redis.ini
```
### 3. Перезапустили Apache:
```bash
systemctl restart apache2
```
### 4. Проверка:
```bash
curl https://crm.clientright.ru/crm_extensions/file_storage/api/nextcloud_open.php?recordId=395695
# Ответ:
{
"success": true,
"fileId": 115163,
"redirectUrl": "https://office.clientright.ru:8443/apps/files/files/115163?...",
"source": "redis"
}
```
## 🎯 Результат
✅ Кнопка "📚 Через Nextcloud" **РАБОТАЕТ**
✅ FileID получается из **Redis** (быстро!)
✅ Файлы открываются в **OnlyOffice через Nextcloud**
## 📂 Изменённые файлы
- `/opt/php73/mods-available/redis.ini` (создан)
- `/opt/php73/conf.d/redis.ini` (symlink создан)
- `nextcloud_open.php` (оптимизирован, убрана PROPFIND fallback логика)
## 🧪 Проверка других кнопок
| Кнопка | Статус | Примечание |
|--------|--------|------------|
| ⚡ **Быстро** | ✅ Работает | S3 → OnlyOffice Standalone |
| 📚 **Через Nextcloud** | ✅ Работает | Redis → Nextcloud → OnlyOffice |
| 📁 **Папка в Nextcloud** | ✅ Работает | Открывает папку проекта |
| 📄 **Скачать** | ✅ Работает | Прямая ссылка S3 |
## 🔧 Для проверки в будущем:
```bash
# Проверка модулей PHP 7.3:
curl -s "https://crm.clientright.ru/crm_extensions/file_storage/api/test_modules.php"
# Должно показать: {"mysqli":true,"redis":true,"json":true}
```
---
**Автор:** AI Assistant (Claude Sonnet 4.5)
**Время исправления:** ~2 часа (большая часть на диагностику)
**Сложность:** ⭐⭐⭐ (3/5) - нетривиальная проблема с разными версиями PHP