Ghost Update. Устранение ошибки с Node.js

Ошибка при обновлении Ghost

Если вы используете достаточно старую версию Ghost и решили обновится на последнюю версию, то здесь не так все просто.

Раньше Ghost требовал Node.js версии 16.x, сейчас же необходима версия 18.12.1 и при попытке обновления выводится следующая ошибка:

Ghost v5.74.5 is not compatible with the current Node version. Your node version is 16.20.2, but Ghost v5.74.5 requires ^18.12.1

Процесс обновления Node.js достаточно простой и занимает всего лишь несколько минут. Подключаемся к серверу по SSH и вводим следующие команды:

sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=18 # Use a supported version
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt update
sudo apt install nodejs -y

Но здесь возникает еще пара проблем. Первая - сайт перестает открываться, отдавая 502 ошибку (Error 502 Bad Gateway). Вторая - все равно не получится обновить Ghost. Это связано с тем, что Node.js 18.x перестает работать с localhost (а при установке указывается именно localhost для базы данных, это даже в официальной документации есть).

И что же делать? Просто запустить заново настройку Ghost вот этой командой:

ghost setup

И ответить на несколько вопросов:

Enter your blog URL: - просто нажать Enter оставив все по умолчанию
Enter your MySQL hostname: - Ввести 127.0.0.1 (вот это исправит ошибки)
Enter your MySQL username: - просто нажать Enter оставив все по умолчанию your
Enter your MySQL password (skip to keep current password): - просто нажать Enter оставив все по умолчанию
Enter your Ghost database name: - просто нажать Enter оставив все по умолчанию

  • Enter your blog URL: - просто нажать Enter оставив все по умолчанию
  • Enter your MySQL hostname: - Ввести 127.0.0.1 (вот это исправит ошибки)
  • Enter your MySQL username: - просто нажать Enter оставив все по умолчанию your
  • Enter your MySQL password (skip to keep current password): - просто нажать Enter оставив все по умолчанию
  • Enter your Ghost database name: - просто нажать Enter оставив все по умолчанию

И последнее:

  • Do you want to start Ghost? - ввести Y и нажать Enter.

После этого все заработает и можно будет обновить Ghost до последней версии.