Команды управления сайтами
Команды для работы с сайтами: просмотр списка и подробной информации о сайте.
site:list
Выводит список всех сайтов с информацией о домене и директории.
Синтаксис
php bitrix.php site:list [опции]Опции
--active- показать только активные сайты-v,-vv- подробный вывод
Примеры использования
# Список всех сайтов
php bitrix.php site:list
# Только активные сайты
php bitrix.php site:list --active
# С подробной информацией
php bitrix.php site:list -vВывод команды
Команда выводит таблицу со следующей информацией:
- ID - идентификатор сайта
- Название - название сайта
- Домен - основной домен сайта
- Директория - корневая директория сайта
- Активен - статус активности
- По умолчанию - является ли сайт основным
- Язык - языковая версия (в подробном режиме)
- Email - email для уведомлений (в подробном режиме)
- Дополнительные домены - список дополнительных доменов (в подробном режиме)
site:info
Выводит подробную информацию о конкретном сайте.
Синтаксис
php bitrix.php site:info <id>Аргументы
id- идентификатор сайта (например,s1,s2)
Примеры использования
# Информация о сайте s1
php bitrix.php site:info s1
# Информация о сайте s2
php bitrix.php site:info s2
# С подробным выводом
php bitrix.php site:info s1 -vВывод команды
Команда выводит детальную информацию о сайте:
Основная информация:
- ID сайта
- Название
- Активность
- Статус (по умолчанию или нет)
- Сортировка
Домены:
- Основной домен
- Список всех доменов (включая дополнительные)
- Протокол (HTTP/HTTPS)
Пути:
- Корневая директория
- Абсолютный путь
Локализация:
- Язык интерфейса
- Кодировка
- Направление письма (LTR/RTL)
- Формат даты и времени
Контакты:
- Email администратора
- Email для уведомлений
- Имя отправителя
Настройки:
- Шаблон по умолчанию
- Модули, подключенные к сайту
- Лимиты дискового пространства
Использование в автоматизации
Аудит сайтов
#!/bin/bash
# Создание отчета по всем сайтам
cd /var/www/bitrix
REPORT="/tmp/sites_report_$(date +%Y%m%d).txt"
{
echo "=== Отчет по сайтам Битрикс ==="
echo "Дата: $(date)"
echo ""
echo "=== Список всех сайтов ==="
php bitrix.php site:list -v
echo ""
# Детальная информация по каждому сайту
for site_id in $(php bitrix.php site:list | grep -oP '^\s*\K\S+' | tail -n +2); do
echo "=== Детали сайта: $site_id ==="
php bitrix.php site:info "$site_id"
echo ""
done
} > "$REPORT"
cat "$REPORT"Проверка доступности сайтов
#!/bin/bash
# Проверка доступности всех сайтов
cd /var/www/bitrix
echo "Проверка доступности сайтов..."
# Получить список активных сайтов
php bitrix.php site:list --active | while read -r line; do
# Извлечь домен из строки
domain=$(echo "$line" | awk '{print $3}')
if [ -n "$domain" ] && [ "$domain" != "Домен" ]; then
echo -n "Проверка $domain: "
if curl -s -o /dev/null -w "%{http_code}" "http://$domain" | grep -q "200\|301\|302"; then
echo "✓ OK"
else
echo "✗ НЕДОСТУПЕН"
echo "ВНИМАНИЕ: Сайт $domain недоступен" | \
mail -s "Site Down Alert" admin@example.com
fi
fi
doneЭкспорт конфигурации сайтов
#!/bin/bash
# Экспорт конфигурации всех сайтов в JSON
cd /var/www/bitrix
OUTPUT_FILE="/backup/sites_config_$(date +%Y%m%d).json"
echo "{" > "$OUTPUT_FILE"
echo ' "sites": [' >> "$OUTPUT_FILE"
# Получить список ID сайтов
SITE_IDS=($(php bitrix.php site:list | grep -oP '^\s*\K\S+' | tail -n +2))
for i in "${!SITE_IDS[@]}"; do
site_id="${SITE_IDS[$i]}"
echo " {" >> "$OUTPUT_FILE"
echo " \"id\": \"$site_id\"," >> "$OUTPUT_FILE"
# Получить информацию о сайте
php bitrix.php site:info "$site_id" >> "$OUTPUT_FILE"
echo " }" >> "$OUTPUT_FILE"
# Добавить запятую, если это не последний элемент
if [ $i -lt $((${#SITE_IDS[@]} - 1)) ]; then
echo "," >> "$OUTPUT_FILE"
fi
done
echo " ]" >> "$OUTPUT_FILE"
echo "}" >> "$OUTPUT_FILE"
echo "Конфигурация сохранена в $OUTPUT_FILE"Мониторинг изменений доменов
#!/bin/bash
# Мониторинг изменений в настройках сайтов
cd /var/www/bitrix
CURRENT="/tmp/sites_current.txt"
PREVIOUS="/var/cache/sites_previous.txt"
# Получить текущую конфигурацию
php bitrix.php site:list -v > "$CURRENT"
# Сравнить с предыдущей
if [ -f "$PREVIOUS" ]; then
if ! diff -q "$PREVIOUS" "$CURRENT" > /dev/null; then
echo "Обнаружены изменения в настройках сайтов:"
diff "$PREVIOUS" "$CURRENT"
# Отправить уведомление
diff "$PREVIOUS" "$CURRENT" | \
mail -s "Sites Configuration Changed" admin@example.com
fi
fi
# Сохранить текущую конфигурацию
cp "$CURRENT" "$PREVIOUS"Генерация виртуальных хостов
#!/bin/bash
# Автоматическая генерация конфигурации виртуальных хостов Nginx
cd /var/www/bitrix
NGINX_CONF_DIR="/etc/nginx/sites-available"
DOCUMENT_ROOT="/var/www"
# Получить информацию о каждом сайте
php bitrix.php site:list --active | tail -n +2 | while read -r line; do
site_id=$(echo "$line" | awk '{print $1}')
domain=$(echo "$line" | awk '{print $3}')
if [ -n "$domain" ] && [ "$domain" != "---" ]; then
cat > "$NGINX_CONF_DIR/$domain.conf" <<EOF
server {
listen 80;
server_name $domain;
root $DOCUMENT_ROOT;
index index.php;
location / {
try_files \$uri \$uri/ /bitrix/urlrewrite.php\$is_args\$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
}
}
EOF
echo "Создана конфигурация для $domain"
fi
done
echo "Не забудьте перезагрузить Nginx: sudo systemctl reload nginx"Продвинутые сценарии
Автоматическая настройка SSL
#!/bin/bash
# Настройка SSL для всех активных сайтов с помощью Let's Encrypt
cd /var/www/bitrix
# Получить список доменов активных сайтов
DOMAINS=($(php bitrix.php site:list --active | awk 'NR>1 {print $3}' | grep -v "---"))
for domain in "${DOMAINS[@]}"; do
echo "Настройка SSL для $domain"
# Получить сертификат Let's Encrypt
sudo certbot --nginx -d "$domain" --non-interactive --agree-tos --email admin@example.com
if [ $? -eq 0 ]; then
echo "✓ SSL настроен для $domain"
else
echo "✗ Ошибка настройки SSL для $domain"
fi
doneСинхронизация настроек между сайтами
#!/bin/bash
# Копирование настроек одного сайта на другие
SOURCE_SITE="s1"
TARGET_SITES=("s2" "s3")
cd /var/www/bitrix
# Получить настройки исходного сайта
echo "Получение настроек сайта $SOURCE_SITE..."
php bitrix.php site:info "$SOURCE_SITE" > /tmp/source_site.txt
# Применить к целевым сайтам (требуется дополнительная логика)
for target in "${TARGET_SITES[@]}"; do
echo "Применение настроек к сайту $target..."
# Здесь должна быть логика применения настроек
# Например, через API или прямые запросы к БД
doneСоздание резервной копии настроек
#!/bin/bash
# Резервное копирование настроек всех сайтов
cd /var/www/bitrix
BACKUP_DIR="/backup/sites/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
# Экспорт списка сайтов
php bitrix.php site:list -v > "$BACKUP_DIR/sites_list.txt"
# Экспорт детальной информации по каждому сайту
SITE_IDS=($(php bitrix.php site:list | awk 'NR>1 {print $1}'))
for site_id in "${SITE_IDS[@]}"; do
php bitrix.php site:info "$site_id" > "$BACKUP_DIR/site_${site_id}_info.txt"
done
# Создать архив
tar -czf "$BACKUP_DIR.tar.gz" -C "$(dirname $BACKUP_DIR)" "$(basename $BACKUP_DIR)"
rm -rf "$BACKUP_DIR"
echo "Резервная копия сохранена: $BACKUP_DIR.tar.gz"Troubleshooting
Сайт не отображается в списке
Проблема: Созданный сайт не появляется в списке
Решения:
- Проверьте базу данных:
SELECT * FROM b_lang; - Очистите кеш:
php bitrix.php cache:clear - Проверьте, что сайт создан через админ-панель корректно
- Проверьте права доступа к таблице b_lang
Неправильная информация о сайте
Проблема: Команда выводит устаревшую или неправильную информацию
Решения:
- Очистите кеш:
php bitrix.php cache:clear - Проверьте данные в базе напрямую
- Убедитесь, что используете актуальную версию модуля
- Перезагрузите PHP-FPM:
sudo systemctl restart php-fpm
Ошибка "Сайт не найден"
Проблема: При запросе информации о сайте возникает ошибка
Решения:
- Проверьте правильность ID сайта:
php bitrix.php site:list - Убедитесь, что используете правильный формат ID (например,
s1, а не1) - Проверьте существование сайта в базе данных
Полезные советы
💡 Документируйте конфигурацию - регулярно экспортируйте настройки сайтов
💡 Мониторьте изменения - отслеживайте изменения в конфигурации автоматически
💡 Автоматизируйте проверки - настройте мониторинг доступности сайтов
💡 Создавайте резервные копии - сохраняйте настройки перед внесением изменений
💡 Используйте шаблоны - автоматизируйте создание конфигураций веб-серверов
Смотрите также
- Команды отладки - диагностика проблем с конфигурацией
- Команды резервного копирования - создание бэкапов
- Официальная документация Битрикс по мультисайтовости