Обновление XOOPS
Это руководство охватывает обновление XOOPS со старых версий на последний выпуск, сохраняя ваши данные и настройки.
Информация о версии
- Стабильная: XOOPS 2.5.11
- Бета: XOOPS 2.7.0 (тестирование)
- Будущее: XOOPS 4.0 (в разработке - см. Roadmap)
Контрольный список перед обновлением
Заголовок раздела «Контрольный список перед обновлением»Перед началом обновления проверьте:
- Документирована текущая версия XOOPS
- Определена целевая версия XOOPS
- Завершена полная резервная копия системы
- Проверена резервная копия базы данных
- Записан список установленных модулей
- Задокументированы пользовательские изменения
- Доступна среда для тестирования
- Проверен путь обновления (некоторые версии пропускают промежуточные выпуски)
- Проверены ресурсы сервера (достаточно дискового пространства, памяти)
- Включен режим обслуживания
Путь обновления - Руководство
Заголовок раздела «Путь обновления - Руководство»Различные пути обновления в зависимости от текущей версии:
graph LR A[2.3.x] -->|Требуется 2.4.x| B[2.4.x] B -->|Прямой или через 2.5.x| C[2.5.x] A -->|Через 2.4.x| C C -->|Стабильная| D[2.5.11] E[2.5.0-2.5.10] -->|Прямой| D D -->|Бета| F[2.7.0]Важно: Никогда не пропускайте основные версии. Если обновляете с 2.3.x, сначала обновите до 2.4.x, затем до 2.5.x.
Шаг 1: Полная резервная копия системы
Заголовок раздела «Шаг 1: Полная резервная копия системы»Резервная копия базы данных
Заголовок раздела «Резервная копия базы данных»Используйте mysqldump для резервной копии базы данных:
# Полная резервная копия базы данныхmysqldump -u xoops_user -p xoops_db > /backups/xoops_db_backup_$(date +%Y%m%d_%H%M%S).sql
# Сжатая резервная копияmysqldump -u xoops_user -p xoops_db | gzip > /backups/xoops_db_backup_$(date +%Y%m%d_%H%M%S).sql.gzИли используя phpMyAdmin:
- Выберите вашу базу данных XOOPS
- Нажмите на вкладку “Экспорт”
- Выберите формат “SQL”
- Выберите “Сохранить в файл”
- Нажмите “Перейти”
Проверьте файл резервной копии:
# Проверить размер резервной копииls -lh /backups/xoops_db_backup*.sql
# Проверить целостность резервной копии (несжатой)head -20 /backups/xoops_db_backup_*.sql
# Проверить сжатую резервную копиюzcat /backups/xoops_db_backup_*.sql.gz | head -20Резервная копия файловой системы
Заголовок раздела «Резервная копия файловой системы»Резервная копия всех файлов XOOPS:
# Сжатая резервная копия файловtar -czf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar.gz /var/www/html/xoops
# Несжатая (быстрее, требует больше дискового пространства)tar -cf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar /var/www/html/xoops
# Показать ход выполнения резервной копииtar -czf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar.gz --verbose /var/www/html/xoops | tailБезопасное хранение резервных копий:
# Защищенное хранилище резервных копийchmod 600 /backups/xoops_*ls -lah /backups/
# Необязательно: скопировать на удаленное хранилищеscp /backups/xoops_* user@backup-server:/secure/backups/Протестируйте восстановление резервной копии
Заголовок раздела «Протестируйте восстановление резервной копии»КРИТИЧНО: Всегда тестируйте работу вашей резервной копии:
# Проверить содержимое архива tartar -tzf /backups/xoops_files_*.tar.gz | head -20
# Извлечь в место тестированияmkdir /tmp/restore_testcd /tmp/restore_testtar -xzf /backups/xoops_files_*.tar.gz
# Проверить наличие ключевых файловls -la xoops/mainfile.phpls -la xoops/install/Шаг 2: Включение режима обслуживания
Заголовок раздела «Шаг 2: Включение режима обслуживания»Предотвратите доступ пользователей к сайту во время обновления:
Вариант 1: Панель администратора XOOPS
Заголовок раздела «Вариант 1: Панель администратора XOOPS»- Войдите в панель администратора
- Перейдите на “Система > Обслуживание”
- Включите “Режим обслуживания сайта”
- Установите сообщение обслуживания
- Сохраните
Вариант 2: Ручной режим обслуживания
Заголовок раздела «Вариант 2: Ручной режим обслуживания»Создайте файл обслуживания в веб-корневой:
<!DOCTYPE html><html><head> <title>Под обслуживанием</title> <style> body { font-family: Arial; text-align: center; padding: 50px; } h1 { color: #333; } p { color: #666; margin: 20px 0; } </style></head><body> <h1>Сайт на обслуживании</h1> <p>Мы в настоящее время обновляем наш сайт.</p> <p>Ожидаемое время: примерно 30 минут.</p> <p>Спасибо за ваше терпение!</p></body></html>Настройте Apache для отображения страницы обслуживания:
# В .htaccess или конфигурация vhostErrorDocument 503 /maintenance.html
# Перенаправить весь трафик на страницу обслуживания<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.100$ # Ваш IP RewriteRule ^(.*)$ - [R=503,L]</IfModule>Шаг 3: Загрузите новую версию
Заголовок раздела «Шаг 3: Загрузите новую версию»Загрузите XOOPS с официального сайта:
# Загрузить последнюю версиюcd /tmpwget https://xoops.org/download/xoops-2.5.8.zip
# Проверить контрольную сумму (если предоставлена)sha256sum xoops-2.5.8.zip# Сравните с официальной контрольной суммой SHA256
# Извлечь во временное местоunzip xoops-2.5.8.zipcd xoops-2.5.8Шаг 4: Подготовка файлов перед обновлением
Заголовок раздела «Шаг 4: Подготовка файлов перед обновлением»Определить пользовательские изменения
Заголовок раздела «Определить пользовательские изменения»Проверьте наличие измененных основных файлов:
# Ищите измененные файлы (файлы с более новым mtime)find /var/www/html/xoops -type f -newer /var/www/html/xoops/install.php
# Проверить пользовательские темыls /var/www/html/xoops/themes/# Отметьте любые пользовательские темы
# Проверить пользовательские модулиls /var/www/html/xoops/modules/# Отметьте любые пользовательские модули, созданные вамиЗадокументируйте текущее состояние
Заголовок раздела «Задокументируйте текущее состояние»Создайте отчет об обновлении:
cat > /tmp/upgrade_report.txt << EOF=== Отчет об обновлении XOOPS ===Дата: $(date)Текущая версия: 2.5.6Целевая версия: 2.5.8
=== Установленные модули ===$(ls /var/www/html/xoops/modules/)
=== Пользовательские изменения ===[Задокументируйте любые пользовательские изменения темы или модуля]
=== Темы ===$(ls /var/www/html/xoops/themes/)
=== Статус плагина ===[Список любых пользовательских изменений кода]
EOFШаг 5: Объедините новые файлы с текущей установкой
Заголовок раздела «Шаг 5: Объедините новые файлы с текущей установкой»Стратегия: Сохраните пользовательские файлы
Заголовок раздела «Стратегия: Сохраните пользовательские файлы»Замените основные файлы XOOPS, но сохраните:
mainfile.php(конфигурация вашей базы данных)- Пользовательские темы в
themes/ - Пользовательские модули в
modules/ - Загрузки пользователей в
uploads/ - Данные сайта в
var/
Процесс ручного слияния
Заголовок раздела «Процесс ручного слияния»# Установить переменныеXOOPS_OLD="/var/www/html/xoops"XOOPS_NEW="/tmp/xoops-2.5.8"BACKUP="/backups/pre-upgrade"
# Создать резервную копию перед обновлением на местеmkdir -p $BACKUPcp -r $XOOPS_OLD/* $BACKUP/
# Скопировать новые файлы (но сохранить чувствительные файлы)# Скопировать все, кроме защищенных каталоговrsync -av --exclude='mainfile.php' \ --exclude='modules/custom*' \ --exclude='themes/custom*' \ --exclude='uploads' \ --exclude='var' \ --exclude='cache' \ --exclude='templates_c' \ $XOOPS_NEW/ $XOOPS_OLD/
# Проверить сохранение критических файловls -la $XOOPS_OLD/mainfile.phpИспользование upgrade.php (если доступно)
Заголовок раздела «Использование upgrade.php (если доступно)»Некоторые версии XOOPS включают автоматизированный скрипт обновления:
# Скопировать новые файлы с установщикомcp -r /tmp/xoops-2.5.8/* /var/www/html/xoops/
# Запустить мастер обновления# Посетите: http://your-domain.com/xoops/upgrade/Разрешения файлов после слияния
Заголовок раздела «Разрешения файлов после слияния»Восстановите правильные разрешения:
# Установить права собственностиchown -R www-data:www-data /var/www/html/xoops
# Установить разрешения каталоговfind /var/www/html/xoops -type d -exec chmod 755 {} \;
# Установить разрешения файловfind /var/www/html/xoops -type f -exec chmod 644 {} \;
# Сделать каталоги доступными для записиchmod 777 /var/www/html/xoops/cachechmod 777 /var/www/html/xoops/templates_cchmod 777 /var/www/html/xoops/uploadschmod 777 /var/www/html/xoops/var
# Защитить mainfile.phpchmod 644 /var/www/html/xoops/mainfile.phpШаг 6: Миграция базы данных
Заголовок раздела «Шаг 6: Миграция базы данных»Просмотрите изменения базы данных
Заголовок раздела «Просмотрите изменения базы данных»Проверьте примечания выпуска XOOPS на предмет изменений структуры базы данных:
# Извлечь и просмотреть файлы миграции SQLfind /tmp/xoops-2.5.8 -name "*.sql" -type f# Задокументируйте все найденные файлы .sqlШаг 7: Проверьте обновление
Заголовок раздела «Шаг 7: Проверьте обновление»Проверка домашней страницы
Заголовок раздела «Проверка домашней страницы»Посетите вашу домашнюю страницу XOOPS:
http://your-domain.com/xoops/Ожидается: страница загружается без ошибок, отображается правильно
Следующие шаги
Заголовок раздела «Следующие шаги»После успешного обновления:
- Обновите любые пользовательские модули до последних версий
- Просмотрите примечания выпуска на предмет устаревших функций
- Рассмотрите оптимизацию производительности
- Обновите параметры безопасности
- Тщательно протестируйте всю функциональность
- Держите файлы резервных копий в безопасности
Теги: #upgrade #maintenance #backup #database-migration
Связанные статьи:
- ../../06-Publisher-Module/User-Guide/Installation
- Server-Requirements
- ../Configuration/Basic-Configuration
- ../Configuration/Security-Configuration