Команды отладки и диагностики
Команды для отладки и диагностики системы: просмотр конфигурации.
debug:config
Выводит конфигурацию системы из файла .settings.php.
Синтаксис
php bitrix.php debug:config [опции]Опции
--key=<ключ>- показать конфигурацию конкретного параметра--show-sensitive- показать чувствительные данные (пароли, ключи)-v,-vv- подробный вывод
Примеры использования
# Показать основные параметры конфигурации
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 - настройки подключения к базе данных:
php bitrix.php debug:config --key=connectionsПоказывает:
- Тип БД (MySQL, PostgreSQL, MSSQL, Oracle)
- Хост
- База данных
- Логин (без пароля по умолчанию)
- Параметры подключения
cache - настройки кеширования:
php bitrix.php debug:config --key=cacheПоказывает:
- Тип кеша (memcache, redis, files)
- Хост и порт
- SID
- Настройки подключения
crypto - настройки шифрования:
php bitrix.php debug:config --key=cryptoПоказывает:
- Крипто-ключ (скрыт по умолчанию)
exception_handling - обработка исключений:
php bitrix.php debug:config --key=exception_handlingПоказывает:
- Режим отладки
- Уровень детализации ошибок
- Логирование
session - настройки сессий:
php bitrix.php debug:config --key=sessionМодули
pull - настройки Bitrix24.Pull:
php bitrix.php debug:config --key=pullmessenger - настройки мессенджера:
php bitrix.php debug:config --key=messengerБезопасность
🔒 Внимание! По умолчанию команда скрывает чувствительные данные:
- Пароли базы данных
- Крипто-ключи
- API-токены
- Секретные ключи
Для отображения используйте опцию --show-sensitive, но только в безопасном окружении!
Использование в диагностике
Проверка подключения к базе данных
#!/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Проверка конфигурации кеша
#!/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Полная диагностика системы
#!/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"Экспорт конфигурации
#!/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"Сравнение конфигураций
#!/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Продвинутые сценарии
Мониторинг изменений конфигурации
#!/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"Валидация конфигурации
#!/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 "Валидация завершена"Генерация документации конфигурации
#!/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"Автоматическое оповещение о проблемах
#!/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
fiTroubleshooting
Команда не выводит данные
Проблема: Команда выполняется, но не выводит конфигурацию
Решения:
- Проверьте наличие файла
.settings.php - Проверьте права доступа к файлу:
ls -la ../bitrix/.settings.php - Проверьте синтаксис файла
.settings.php - Проверьте логи PHP
Отображаются чувствительные данные
Проблема: Пароли и ключи видны в выводе
Решения:
- Не используйте опцию
--show-sensitiveбез необходимости - Не сохраняйте вывод команды в незащищенные файлы
- Очистите историю команд:
history -c
Ошибка чтения конфигурации
Проблема: Ошибка при чтении .settings.php
Решения:
- Проверьте синтаксис файла
- Убедитесь, что файл не поврежден
- Восстановите из резервной копии
- Проверьте кодировку файла (должна быть UTF-8)
Полезные советы
💡 Регулярно экспортируйте - сохраняйте конфигурацию перед внесением изменений
💡 Мониторьте изменения - отслеживайте несанкционированные изменения автоматически
💡 Документируйте - создавайте актуальную документацию по конфигурации
💡 Будьте осторожны - не публикуйте чувствительные данные
💡 Автоматизируйте проверки - регулярно валидируйте конфигурацию
💡 Используйте версионирование - храните изменения конфигурации в Git (без паролей!)
Безопасность
Защита чувствительных данных
⚠️ Важно:
- Никогда не публикуйте вывод с опцией
--show-sensitive - Не сохраняйте пароли в логи
- Ограничьте доступ к серверу
- Используйте шифрование для передачи данных
Рекомендации
- Используйте переменные окружения для чувствительных данных
- Ограничьте доступ к
.settings.php - Аудируйте изменения конфигурации
- Используйте разные пароли для разных окружений
Смотрите также
- Команды базы данных - информация о БД
- Команды сайтов - информация о сайтах
- Команды модулей - список установленных модулей