Как правильно обновить сайт на OJS 3 до последней версии

Разработчики OJS активно развивают CMS Open Journal System, поэтому обновления выходят довольно часто. В этой статье расскажем как обновить сайт работающий на OJS 3 до последней версии.

Просто обновить сайт нажав одну кнопку, как это реализовано в других CMS, в OJS нельзя. Придется вручную загружать все файлы новой версии.

Как понять доступно ли обновление?

При входе в панель администратора сверху вы увидите сообщение о доступности новой версии:

Доступна новая версия OJS! Сейчас вы пользуетесь OJS 3.2.1.3 (ваша версия).  Самая последняя версия — OJS 3.3.0.4. Пожалуйста, свяжитесь с вашим администратором сайта (Имя Администратора email@journal.ru), чтобы уведомить его об этой новой версии. Более подробную информацию можно найти здесь.

Также можно зайти в Администрирование — Информация о системе и нажать «Проверить наличие обновлений», если доступно обновление то вы увидите сообщение «Доступна обновленная версия: Скачать». Ниже в таблице отображается история обновлений сайта.

/index.php/journal/admin/systemInfo

Как обновить сайт на OJS

Есть два способа обновления: прямое полное обновление загрузкой архива обновления через FTP и обновление через GitHub. В этой инструкции будет показан процесс обновления через FTP. Такой способ рекомендуется, если вы не вносили в код сайта никаких изменений. Иначе используйте обновление через git.

  1. Выполните полную резервную копию сайта. Сделать это можно например через плагин Backup из «Галереи модулей» Настройки — Вебсайт — Модули — Галерея модулей.Установка плагина backup для резервной копии OJS 3
  2. Скачайте архив с обновлением последней версии. Сделать это можно, нажав «Скачать«, в разделе информация о системе или на официальном сайте.
  3. Ознакомьтесь с официальным руководством по обновлению к конкретной версии OJS, которое находится в архиве обновления: docs/UPGRADE.md , также проверьте файл Unsupported Upgrades.md убедитесь, что ваша версия OJS поддерживает обновление.
  4. Распакуйте архив обновления и загрузите его в отдельную папку сайта (не перезаписывайте файлы текущей версии сайта). Например в папку «For upgrade». (это самый долгий процесс в обновлении)
  5. Из корня текущего сайта скопируйте файл config.inc.php, папку public и папку files (если она находится в папке сайта) в папку c обновлением For upgrade.
  6. Сравните ваш файл config.inc.php c файлом config.TEMPLATE.inc.php, убедитесь что в новой версии OJS не появилось новых настроек. Изменения файла конфигурации можно проверить в документе к соответствующему обновлению в папке /docs/release-notes/ . Например в версии 3.2.1 в файле конфигурации появились три новых директивы: database.collation, email.smtp_suppress_cert_check, curl.cainfo. Добавьте их в соответсвии с примером config.TEMPLATE.inc.php.
  7. Если у вас используется собственная тема оформления или child-тема для сайта, то сделайте ее копию. Найти тему можно здесь /plugins/themes/.
  8. Теперь перенесите все файлы текущего сайта в какую-нибудь папку, например old_site или backup.
  9. Из папки For upgrades перенесите все файлы в корневую папку сайта. Также не забудьте вернуть папку темы в каталог с темами /plugins/themes/.

Внимание! Заменять файлы старой версии сайта на новые нельзя! Это вызовет ошибки в работе сайта.

Обновление базы данных сайта

Файлы сайта мы обновили, теперь осталось обновить базу данных. Обновить базу данных можно двумя способами: через командную строку, если у вас есть доступ к сайту по SSH и напрямую через сайт. В этом примере обновляем через сайт.

  1. Откройте файл config.inc.php, он находится в корневой папке сайта.
  2. Найдите строчку installed = On и замените ее на installed = Off. 
  3. Теперь откройте сайт как обычно через браузер, появится окно установки OJS.
  4. Найдите кнопку «Нажмите здесь», нажмите на нее и следуйте инструкции на экране, тем самым запустится процесс обновления базы данных сайта.
  5. Если обновление прошло успешно, вы увидите соответствующее сообщение и примечания к текущему выпуску. Теперь в файле config.inc.php верните значение installed на On.завершение обновления ojs 3

Если после нажатия Upgrade вы видите белый экран, значит что-то пошло не так. Откройте файл config.inc.php и включите в нем режим отладки. Поменяйте переменную display_errors с Off на On – display_errors = On. И попробуйте еще раз запустить обновление базы данных, теперь вы увидите причину ошибки. Попытайтесь ее устранить самостоятельно или обратитесь к нам за помощью в обновлении.

Также обновление базы данных можно запустить и через командную строку по SSH, в случае каких-либо ошибок, вы их сразу увидите в консоли. (перейдите в каталог с сайтом cd /path/to/site_on_ojs/)

php tools/upgrade.php upgrade

На этом обновление сайта на OJS завершено. Если возникли какие-то вопросы или ошибки пишите в комментарии или в обратную связь.

Новая версия OJS

Нужна помощь в создании или сопровождении сайта на OJS?