Як підвищити php7.4 до php8.2 у Vesta Panel на Ubuntu 18.04 LTS
Невеличкий допис який розкриває процес підвищення версії PHP у Vesta Panel на Ubuntu 18.04 LTS. Поділюся своїм досвідом та надам інструкції щодо оновлення з PHP 7.4 до PHP 8.2. Це оновлення відкриє перед вами нові можливості та функціональні можливості, які пропонує оновлена версія PHP. Сподіваюсь що інструкція стане вам у нагоді
ЗВЕРТАЮ ВАШУ УВАГУ, ЩО ЦЯ ІНСТРУКЦІЯ ПРАЦЮЄ У ТОМУ ВИПАДКУ, ЯКЩО У ВАС ВСТАНОВЛЕНО ЗВ'ЯЗКУ NGINX + PHP_FPM (на UBUNTU 18.04). Для Apache не впевнений у працездатності.
Якщо у вас php5.4 чи php7.2 то ви натомість php7.4 у строках коду пишите вашу версію.
Для того, щоб підвищити з php7.4 до php8.2 у Vesta panel потрібно зробити наступні дії
1. Зробіть резервную копію вашого сервера (у мене droplet на Digital Ocean, там все робиться у декілька кліків)
2. Увійдіть на сервер по SSH та виконайте команди
2.1 Додайте репозеторій для встановлення php (якщо раніше цього не робили), та оновить пакети
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
2.2 Зробіть резервну копію користувача admin (цей крок у принципі можна і пропустити, так як ви раніше робили бекап сервера)
v-backup-user admin
2.3 Далі встановлюєте php8.2 наступною командою
sudo apt-get install php8.2 php8.2-cgi php8.2-cli php8.2-common php8.2-curl php8.2-fpm php8.2-gd php8.2-imap php8.2-intl php8.2-ldap php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-pspell php8.2-readline php8.2-soap php8.2-tidy php8.2-xml php8.2-xmlrpc php8.2-zip
Якщо ви не знаєте які у вас були встановленні модулі для php ви можете подивитися командою (натомість php7.4 ви можете вписати вашу версію):
dpkg --get-selections | grep -v deinstall | grep php7.4
На екрані ви побачите перелік, скопіюйте його в текстовий файл для подальшої підготовки.
2.4 Далі треба зупинити php7.4-fpm, та активувити php8.2-fpm
/etc/init.d/php7.4-fpm stop
/etc/init.d/php8.2-fpm start
2.5 Оновіть інформацію про символічні посилання, що входять до підсистеми альтернатив для ALT Linux. На екрані з'явиться перелік для вибору. Вам потрібно ввести ту цифру, навпроти якої буде написано php8.2-fpm та натиснути ENTER
update-alternatives --config php
2.6 Перезапустіть php8.2-fpm і nginx
/etc/init.d/php8.2-fpm restart
service nginx restart
2.7 Перенесіть конфіги від php7.4-fpm у php8.2-fpm. Команди:
cd /etc/php/7.4/fpm/pool.d/
cp * /etc/php/8.2/fpm/pool.d/
2.8 Настав час внести коригування у Vesta Panel. Відредагуйте конфіг /usr/local/vesta/conf/vesta.conf та змініть WEB_BACKEND='php7.4-fpm' на WEB_BACKEND='php8.2-fpm'
sudo nano /usr/local/vesta/conf/vesta.conf
# Має вийти ось так:
WEB_BACKEND='php8.2-fpm'
2.9 Далі, потрібно скопіювати шаблони сайтів (без них ви не зможете додати новий сайт). Йдеться про ці шаблони:
Послідовно виконайте команди:
cd /usr/local/vesta/data/templates/web/
cp -r php-fpm php8.2-fpm
cd /usr/local/vesta/data/templates/web/nginx
cp -r php-fpm php8.2-fpm
2.10 На превеликий жаль, Vesta Panel на UBUNTU 18.04 не може працювати з кількома версіями PHP. У моєму випадку — це php7.4 і php8.2. Якщо я намагаюся додати новий домен, то отримую помилку: Error php-fpm pool doesn't exist. Для вирішення цієї проблеми мені довелося видалити php7.4 ось цими командами
sudo apt-get purge `dpkg -l | grep php7.4| awk '{print $2}' |tr "\n" " "`
2.11 Далі треба видалити попередню папку з конфігами php7.4
sudo rm -rf /etc/php/7.4/fpm/
2.12 Після виконання усіх дій треба перезапустити php та nginx
sudo /etc/init.d/php8.2-fpm start
sudo service nginx restart
Ящо у вас Vesta Pantel чи раніше додані сайти будут видавати помилку 500 вам потрібно спробувати перезавантажити сервер
sudo reboot
Готово! Ваша Vesta Panel перейшла з php 7.4 на php 8.2. Нагадую, що всі зміни ви робите на свій страх і ризик! Доречі на цьому сайті я робив саме по ції інструкції 🙂
Ось відео-інструкція