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

3.2 KiB
Raw Permalink Blame History

🐛 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!

# PHP CLI (работало):
php -v  # PHP 7.2 (имеет redis extension)

# Apache (не работало):
phpinfo()  # PHP 7.3 (НЕТ redis extension!)

Решение

1. Обнаружили модуль .so:

find /opt/php73 -name "redis.so"
# /opt/php73/lib/php/extensions/no-debug-non-zts-20180731/redis.so

2. Создали конфиг:

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:

systemctl restart apache2

4. Проверка:

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

🔧 Для проверки в будущем:

# Проверка модулей 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