Обновление Elgg

Этот документ проведет вас через шаги, необходимые для обновления вашей установки Elgg до последней версии.

Если вы написали пользовательские плагины, вам также следует прочитать руководства для разработчиков для информации об обновлении кода плагинов для последней версии Elgg.

Советы

  • Сделайте резервную копию вашей базы данных, каталога данных и кода

  • Обратите внимание на любые комментарии, специфичные для версии, ниже

  • Для версий ниже 2.0 рекомендуется обновлять только одну минорную версию за раз

  • Вы можете обновиться с любой минорной версии до любой более высокой минорной версии в рамках той же мажорной (2.0 -> 2.1 или 2.0 -> 2.3)

  • Вы можете обновить только последнюю минорную версию предыдущей мажорной версии до любой минорной версии следующей версии (2.3 -> 3.0 или 2.3 -> 3.2, но не 2.2 -> 3.x).

  • Начиная с Elgg 2.3.* вы можете обновиться до любой будущей версии Elgg без необходимости проходить через каждую минорную версию (например, вы можете обновиться напрямую с 2.3.8 до 3.2.5, не обновляясь до 3.0 и 3.1)

  • Попробуйте новую версию на тестовом сайте перед обновлением

  • Сообщайте о любых проблемах в плагинах авторам плагинов

  • Если вы автор плагина, вы можете сообщить о любых проблемах обратной совместимости на GitHub

С 2.3 на 3.0

1. Обновите composer.json

Если вы использовали стартовый проект Elgg для установки Elgg 2.3, вам может потребоваться обновить ваш composer.json:

  • измените требования платформы на PHP >= 7.0

  • по желанию, установите параметры оптимизации автозагрузчика

  • по желанию, отключите плагин fxp-asset в пользу asset-packagist

Ваш composer.json будет выглядеть примерно так (в зависимости от того, какие изменения вы могли внести самостоятельно):

{
        "type": "project",
        "name": "elgg/starter-project",
        "require": {
                "elgg/elgg": "3.*"
        },
        "config": {
                "process-timeout": 0,
                "platform": {
                        "php": "7.0"
                },
                "fxp-asset": {
                        "enabled": false
                },
                "optimize-autoloader": true,
                "apcu-autoloader": true
        },
        "repositories": [
                {
                        "type": "composer",
                        "url": "https://asset-packagist.org"
          }
        ]
}

2. Обновите .htaccess

Найдите строку:

RewriteRule ^(.*)$ index.php?__elgg_uri=$1 [QSA,L]

И замените ее на:

RewriteRule ^(.*)$ index.php [QSA,L]

3b. Ручное обновление (устаревший подход)

Ручные обновления — это серьезное мероприятие для администраторов сайтов. Мы не рекомендуем поддерживать установку Elgg с помощью дистрибутивов ZIP. Сэкономьте время, научившись использовать composer и системы контроля версий, такие как git. Эта задача также усложнится, если у вас есть сторонние плагины и/или вы внесли какие-либо изменения в файлы ядра!

  1. Сделайте резервную копию вашей базы данных, каталога данных и кода

  2. Войдите как администратор на ваш сайт

  3. Скачайте новую версию Elgg с сайта http://elgg.org

  4. Обновите файлы
    • При обновлении до мажорной версии вам нужно перезаписать все файлы ядра и удалить любые файлы, которые были удалены из ядра Elgg, так как они могут мешать правильной работе вашего сайта.

    • При обновлении до минорной версии или патчинге вам нужно перезаписать все файлы ядра.

  5. Объедините любые новые изменения в правила переписывания
    • Для Apache из install/config/htaccess.dist в .htaccess

    • Для Nginx из install/config/nginx.dist в конфигурацию вашего сервера (обычно внутри /etc/nginx/sites-enabled)

  6. Посетите http://your-elgg-site.com/upgrade.php

  7. Выполните асинхронные обновления на http://your-elgg-site.com/admin/upgrades

Примечание

Любые модификации должны были быть написаны в плагинах, чтобы они не были потеряны при перезаписи. Если это не так, позаботьтесь о сохранении ваших модификаций.

Примечание

Если вы не можете получить доступ к скрипту upgrade.php и получаете ошибку, добавьте $CONFIG->security_protect_upgrade = false; в ваш settings.php и удалите его после завершения всех шагов обновления.

Примечание

Если вы столкнетесь с проблемами с плагинами во время обновления, добавьте пустой файл с именем disabled в ваш каталог /mod/. Это отключит плагины, чтобы вы могли завершить обновление ядра. Затем вы сможете решать проблемы по каждому плагину отдельно.

Если вы установили Elgg с помощью дистрибутивного пакета, но теперь хотите перейти на composer:

  • Обновите текущую установку с помощью метода ручного обновления

  • Переместите вашу кодовую базу во временное расположение

  • Создайте новый проект composer, используя стартовый проект Elgg, следуя инструкциям по установке в корневом каталоге вашей текущей установки

  • Скопируйте сторонние плагины из вашей старой установки в каталог /mod

  • Запустите установщик Elgg, используя ваш браузер или инструмент elgg-cli

  • Когда вы дойдете до шага базы данных, предоставьте те же учетные данные, которые вы использовали для ручной установки, Elgg поймет, что это существующая установка, и не перезапишет никакие значения базы данных

  • По желанию закоммитьте ваш новый проект в систему контроля версий

Применение патча с помощью Composer

Определение патча можно найти в Политике выпуска.

Ваше требование composer.json для Elgg должно быть ~3.y.0 (где y — минорная версия 0, 1 и т.д., которую вы хотите установить). Это обеспечит возможность легкой установки патчей без риска установки следующего минорного релиза.

{
        "require": {
                "elgg/elgg": "~3.0.0"
        }
}

Для уверенности вы можете сначала проверить, что будет установлено/обновлено, выполнив следующую команду

# to get a full list of all packages which can be upgraded
composer update --dry-run

# or if you only wish to check for Elgg
composer update elgg/elgg --dry-run

Чтобы обновить Elgg, просто выполните

# to upgrade all packages
composer update

# or to only upgrade Elgg
composer update elgg/elgg

Более ранние версии

Проверьте документацию Elgg, соответствующую версии Elgg, на которую вы хотите обновиться, переключив версию документации в нижнем левом углу Документация по обновлению