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