Skip to content

Команды отладки и диагностики

Команды для отладки и диагностики системы: просмотр конфигурации.

debug:config

Выводит конфигурацию системы из файла .settings.php.

Синтаксис

bash
php bitrix.php debug:config [опции]

Опции

  • --key=<ключ> - показать конфигурацию конкретного параметра
  • --show-sensitive - показать чувствительные данные (пароли, ключи)
  • -v, -vv - подробный вывод

Примеры использования

bash
# Показать основные параметры конфигурации
php bitrix.php debug:config

# Показать конкретный параметр
php bitrix.php debug:config --key=cache
php bitrix.php debug:config --key=connections
php bitrix.php debug:config --key=crypto
php bitrix.php debug:config --key=exception_handling

# С подробной информацией
php bitrix.php debug:config -v

# Показать все, включая чувствительные данные
php bitrix.php debug:config --show-sensitive

Доступные ключи конфигурации

Основные параметры

connections - настройки подключения к базе данных:

bash
php bitrix.php debug:config --key=connections

Показывает:

  • Тип БД (MySQL, PostgreSQL, MSSQL, Oracle)
  • Хост
  • База данных
  • Логин (без пароля по умолчанию)
  • Параметры подключения

cache - настройки кеширования:

bash
php bitrix.php debug:config --key=cache

Показывает:

  • Тип кеша (memcache, redis, files)
  • Хост и порт
  • SID
  • Настройки подключения

crypto - настройки шифрования:

bash
php bitrix.php debug:config --key=crypto

Показывает:

  • Крипто-ключ (скрыт по умолчанию)

exception_handling - обработка исключений:

bash
php bitrix.php debug:config --key=exception_handling

Показывает:

  • Режим отладки
  • Уровень детализации ошибок
  • Логирование

session - настройки сессий:

bash
php bitrix.php debug:config --key=session

Модули

pull - настройки Bitrix24.Pull:

bash
php bitrix.php debug:config --key=pull

messenger - настройки мессенджера:

bash
php bitrix.php debug:config --key=messenger

Безопасность

🔒 Внимание! По умолчанию команда скрывает чувствительные данные:

  • Пароли базы данных
  • Крипто-ключи
  • API-токены
  • Секретные ключи

Для отображения используйте опцию --show-sensitive, но только в безопасном окружении!


Использование в диагностике

Проверка подключения к базе данных

bash
#!/bin/bash
# Проверка настроек подключения к БД

cd /var/www/bitrix

echo "=== Проверка подключения к базе данных ==="

# Получить настройки подключения
php bitrix.php debug:config --key=connections

# Проверить подключение
echo "Проверка подключения..."
php bitrix.php db:info

if [ $? -eq 0 ]; then
    echo "✓ Подключение к БД работает"
else
    echo "✗ Ошибка подключения к БД"
fi

Проверка конфигурации кеша

bash
#!/bin/bash
# Диагностика настроек кеша

cd /var/www/bitrix

echo "=== Конфигурация кеша ==="
php bitrix.php debug:config --key=cache

# Если используется Redis
CACHE_TYPE=$(php bitrix.php debug:config --key=cache | grep -oP 'type:\s*\K\w+')

if [ "$CACHE_TYPE" = "redis" ]; then
    echo "Проверка подключения к Redis..."
    redis-cli ping
    
    if [ $? -eq 0 ]; then
        echo "✓ Redis доступен"
    else
        echo "✗ Redis недоступен"
    fi
fi

# Если используется Memcached
if [ "$CACHE_TYPE" = "memcache" ]; then
    echo "Проверка подключения к Memcached..."
    echo "stats" | nc localhost 11211
    
    if [ $? -eq 0 ]; then
        echo "✓ Memcached доступен"
    else
        echo "✗ Memcached недоступен"
    fi
fi

Полная диагностика системы

bash
#!/bin/bash
# Комплексная диагностика конфигурации

cd /var/www/bitrix

REPORT="/tmp/system_diagnostic_$(date +%Y%m%d_%H%M%S).txt"

{
    echo "=== Диагностика системы Битрикс ==="
    echo "Дата: $(date)"
    echo ""
    
    echo "=== PHP Version ==="
    php -v
    echo ""
    
    echo "=== Bitrix Configuration ==="
    php bitrix.php debug:config -v
    echo ""
    
    echo "=== Database Info ==="
    php bitrix.php db:info
    echo ""
    
    echo "=== Modules ==="
    php bitrix.php module:list
    echo ""
    
    echo "=== Sites ==="
    php bitrix.php site:list -v
    echo ""
    
    echo "=== Disk Space ==="
    df -h
    echo ""
    
    echo "=== Memory ==="
    free -h
    echo ""
    
} > "$REPORT"

echo "Отчет сохранен: $REPORT"
cat "$REPORT"

Экспорт конфигурации

bash
#!/bin/bash
# Безопасный экспорт конфигурации (без чувствительных данных)

cd /var/www/bitrix

BACKUP_DIR="/backup/config"
mkdir -p "$BACKUP_DIR"

CONFIG_FILE="$BACKUP_DIR/config_$(date +%Y%m%d_%H%M%S).txt"

# Экспорт конфигурации без паролей
php bitrix.php debug:config -v > "$CONFIG_FILE"

# Создать архив
tar -czf "$CONFIG_FILE.tar.gz" -C "$BACKUP_DIR" "$(basename $CONFIG_FILE)"
rm "$CONFIG_FILE"

echo "Конфигурация сохранена: $CONFIG_FILE.tar.gz"

Сравнение конфигураций

bash
#!/bin/bash
# Сравнение текущей конфигурации с эталонной

cd /var/www/bitrix

CURRENT="/tmp/config_current.txt"
REFERENCE="/var/backup/config_reference.txt"

# Получить текущую конфигурацию
php bitrix.php debug:config -v > "$CURRENT"

if [ -f "$REFERENCE" ]; then
    echo "=== Сравнение конфигураций ==="
    
    if diff -q "$REFERENCE" "$CURRENT" > /dev/null; then
        echo "✓ Конфигурация не изменилась"
    else
        echo "⚠ Обнаружены изменения:"
        diff "$REFERENCE" "$CURRENT"
    fi
else
    echo "Эталонная конфигурация не найдена"
    echo "Сохранение текущей конфигурации как эталонной..."
    cp "$CURRENT" "$REFERENCE"
fi

Продвинутые сценарии

Мониторинг изменений конфигурации

bash
#!/bin/bash
# Автоматический мониторинг изменений в конфигурации

cd /var/www/bitrix

CURRENT="/tmp/config_current_$(date +%Y%m%d).txt"
PREVIOUS="/var/cache/config_previous.txt"

# Получить текущую конфигурацию
php bitrix.php debug:config -v > "$CURRENT"

# Сравнить с предыдущей
if [ -f "$PREVIOUS" ]; then
    if ! diff -q "$PREVIOUS" "$CURRENT" > /dev/null; then
        {
            echo "Обнаружены изменения в конфигурации:"
            echo "Дата: $(date)"
            echo ""
            diff "$PREVIOUS" "$CURRENT"
        } | mail -s "Bitrix Configuration Changed" admin@example.com
    fi
fi

# Сохранить текущую конфигурацию
cp "$CURRENT" "$PREVIOUS"

Валидация конфигурации

bash
#!/bin/bash
# Проверка корректности конфигурации

cd /var/www/bitrix

echo "=== Валидация конфигурации ==="

# Проверка базы данных
echo -n "Проверка подключения к БД: "
if php bitrix.php db:info > /dev/null 2>&1; then
    echo "✓ OK"
else
    echo "✗ ОШИБКА"
    exit 1
fi

# Проверка кеша
echo -n "Проверка кеша: "
if php bitrix.php cache:clear > /dev/null 2>&1; then
    echo "✓ OK"
else
    echo "✗ ОШИБКА"
fi

# Проверка прав доступа
echo -n "Проверка прав доступа: "
if [ -w ../bitrix/cache ]; then
    echo "✓ OK"
else
    echo "✗ ОШИБКА: нет прав записи в /bitrix/cache"
fi

echo "Валидация завершена"

Генерация документации конфигурации

bash
#!/bin/bash
# Создание документации по текущей конфигурации

cd /var/www/bitrix

DOC_FILE="/docs/bitrix_configuration.md"

{
    echo "# Конфигурация Битрикс"
    echo ""
    echo "Дата генерации: $(date)"
    echo ""
    
    echo "## База данных"
    echo '```'
    php bitrix.php debug:config --key=connections
    echo '```'
    echo ""
    
    echo "## Кеш"
    echo '```'
    php bitrix.php debug:config --key=cache
    echo '```'
    echo ""
    
    echo "## Информация о БД"
    echo '```'
    php bitrix.php db:info
    echo '```'
    echo ""
    
    echo "## Установленные модули"
    echo '```'
    php bitrix.php module:list
    echo '```'
    echo ""
    
    echo "## Сайты"
    echo '```'
    php bitrix.php site:list -v
    echo '```'
    echo ""
    
} > "$DOC_FILE"

echo "Документация создана: $DOC_FILE"

Автоматическое оповещение о проблемах

bash
#!/bin/bash
# Проверка конфигурации и оповещение при проблемах

cd /var/www/bitrix

ISSUES=()

# Проверка БД
if ! php bitrix.php db:info > /dev/null 2>&1; then
    ISSUES+=("Ошибка подключения к базе данных")
fi

# Проверка режима отладки в продакшене
DEBUG_MODE=$(php bitrix.php debug:config --key=exception_handling | grep -i "debug")
if [ -n "$DEBUG_MODE" ]; then
    ISSUES+=("Включен режим отладки (возможна утечка информации)")
fi

# Проверка прав доступа
if [ ! -w ../bitrix/cache ]; then
    ISSUES+=("Нет прав записи в директорию кеша")
fi

# Отправить уведомление при наличии проблем
if [ ${#ISSUES[@]} -gt 0 ]; then
    {
        echo "Обнаружены проблемы в конфигурации:"
        echo ""
        for issue in "${ISSUES[@]}"; do
            echo "- $issue"
        done
    } | mail -s "Bitrix Configuration Issues" admin@example.com
fi

Troubleshooting

Команда не выводит данные

Проблема: Команда выполняется, но не выводит конфигурацию

Решения:

  1. Проверьте наличие файла .settings.php
  2. Проверьте права доступа к файлу: ls -la ../bitrix/.settings.php
  3. Проверьте синтаксис файла .settings.php
  4. Проверьте логи PHP

Отображаются чувствительные данные

Проблема: Пароли и ключи видны в выводе

Решения:

  1. Не используйте опцию --show-sensitive без необходимости
  2. Не сохраняйте вывод команды в незащищенные файлы
  3. Очистите историю команд: history -c

Ошибка чтения конфигурации

Проблема: Ошибка при чтении .settings.php

Решения:

  1. Проверьте синтаксис файла
  2. Убедитесь, что файл не поврежден
  3. Восстановите из резервной копии
  4. Проверьте кодировку файла (должна быть UTF-8)

Полезные советы

💡 Регулярно экспортируйте - сохраняйте конфигурацию перед внесением изменений

💡 Мониторьте изменения - отслеживайте несанкционированные изменения автоматически

💡 Документируйте - создавайте актуальную документацию по конфигурации

💡 Будьте осторожны - не публикуйте чувствительные данные

💡 Автоматизируйте проверки - регулярно валидируйте конфигурацию

💡 Используйте версионирование - храните изменения конфигурации в Git (без паролей!)


Безопасность

Защита чувствительных данных

⚠️ Важно:

  • Никогда не публикуйте вывод с опцией --show-sensitive
  • Не сохраняйте пароли в логи
  • Ограничьте доступ к серверу
  • Используйте шифрование для передачи данных

Рекомендации

  1. Используйте переменные окружения для чувствительных данных
  2. Ограничьте доступ к .settings.php
  3. Аудируйте изменения конфигурации
  4. Используйте разные пароли для разных окружений

Смотрите также

Документация BXMax CLI