Оновлення CMS

Панель сама повідомляє про нову версію: бейдж у меню «Маркетплейс», плашка на дашборді та на вкладці Маркетплейс → Оновлення. Плагіни й теми оновлюються кнопкою «Оновити» там само.

Ядро — кнопкою (з версії 3.7)

Маркетплейс → Оновлення → «Оновити ядро до X.Y.Z». Сайт сам:

  1. завантажує дистрибутив і перевіряє контрольну суму та цифровий підпис — підмінений архів не встановиться;
  2. кладе резервну копію файлів, що замінюються, до storage/backups/ (зберігаються три останні, поряд із ними кнопка «Відкотити»);
  3. замінює core/, modules/, config/, bin/, docs/, public/assets/, index.php, admin.php та *.md;
  4. чистить кеш шаблонів і opcache; міграції бази застосовуються під час наступного запиту.

Не змінюються: .env, storage/ (окрім бекапів), public/uploads/, ваші плагіни та теми.

Якщо замість кнопки показано список причин — оновлення з панелі на цьому хостингу неможливе: найчастіше вебсервер не має прав на запис у core/, рідше — немає розширення zip, застарілий PHP або замало місця. Тоді оновлюйте вручну.

Ядро — вручну (і для переходу на 3.7 зі старіших версій)

  1. Резервна копія: експорт бази даних, копія .env, storage/, public/uploads/.
  2. Завантажте архів нової версії: https://celena.io/downloads/celena-cms-3.7.0.zip
  3. Залийте файли поверх сайту: core/, modules/, config/, bin/, docs/, public/assets/, index.php, admin.php, .htaccess, *.md. Не чіпайте .env, storage/, public/uploads/, install.lock і власні плагіни/теми. install.php не копіюйте.
  4. Очистіть кеш: видаліть файли в storage/cache/ (find storage/cache -type f -delete).
  5. Відкрийте сайт і панель — міграції бази застосуються автоматично (або php bin/celena migrate).

Після разового ручного оновлення до 3.7 наступні версії встановлюються кнопкою.

Перехід 3.5 → 3.6 і вище

  • У .env додайте публічний ключ маркетплейсу (є в новому .env.example): MARKETPLACE_PUBKEY="6q2vesNDnmG4QuwMh7NUCo+2V8SNYSs2HwcAIbnVnew=" — без нього підпис пакетів не перевіряється.
  • Виставте chmod 600 .env.
  • Перевірте отримувачів листів у формі заявок: «Заявки → Форми».
  • Власні пакети, які не мають потрапляти до маркетплейсу, позначте файлом .private у корені.

Повний список змін — у файлі CHANGELOG.md у корені сайту.