Оновлення версії PHP у Ubuntu 20
September 2021 // 2 хвилини на читання // 192 перегляди
Ку-ку! Швидка нотатка про те, як оновити версію PHP на вашому Ubuntu VPS. Процес оновлення не виглядає складним, тому досвідчені адміністратори, які й так ніколи не читають мій блог, можуть її пропустити.
Для початку давайте визначимо порядок дій, які потрібно виконати:
- Визначаємо версію PHP, яка вже встановлена
- Отримуємо список PHP-доповнень, встановлених на вашому VPS
- Видаляємо поточну версію PHP
- Встановлюємо нову версію PHP
- Налаштовуємо веб-сервер під нову версію
У моєму випадку ми оновимо версію з PHP 7.4 на PHP 8.
1. Визначити поточну версію PHP
Для отримання поточної версії PHP виконуємо команду
php -v
Команда відповість повідомленням про те, яка версія встановлена на сервері наразі. Якщо бачимо в тексті PHP 7.4, можемо продовжувати. Наша мета — змінити вивід цієї команди таким чином, щоб вона виводила PHP 8.0.
2. Визначаємо які доповнення були встановлені для PHP
Навіщо це потрібно? Встановлення нової версії PHP не встановить доповнення, які у вас вже є. Тому добре було б зберегти їх список для подальшої установки.
Виберіть один із способів для отримання списку доповнень:
- Запустити phpinfo() в будь-якому php скрипті
- Виконати консольну команду:
dpkg -l | grep php | tee packages.txt
Команда виведе список встановлених доповнень. Копіюємо його і йдемо далі.
3. Видаляємо старий PHP з сервера
Для видалення PHP (7.x) з VPS можемо скористатися командою
sudo apt-get purge php7.*
Після видалення рекомендується виконати команди для очищення невикористовуваних залежностей:
sudo apt-get autoclean
sudo apt-get autoremove
Після видалення php, ваш VPS готовий до встановлення нової версії мови!
4. Встановимо php 8
У моєму випадку виконаємо встановлення PHP версії 8.0, у цьому допоможуть наступні команди:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt install php8.0-fpm
Після встановлення сервер вже готовий до використання нової версії мови, але швидше за все, доповнень, необхідних для роботи вашого сайту — не встановлено. Команда нижче встановить популярні розширення php.
sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl -y
Однак, якщо ви помітите що доповнень зі списку вище недостатньо — зверніться до списку, який ми отримали в кроці 2, для їх встановлення.
Після чого можна перезавантажити сервер (у моєму випадку — nginx і переконатися що зараз використовується версія 8.0) за допомогою команди перевірки версії
php -v
5. Налаштуємо веб-сервер для роботи з новою версією PHP
Нова версія PHP встановлена, але ще не використовується сайтами, які працюють на сервері, давайте це виправимо.
Для NGINX
Перейдіть до конфігураційного файлу NGINX і вкажіть шлях до PHP-fpm. Нижче я навів приклад такої конфігурації:
server {
#. .. other code
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}
}
Після зміни конфігурації — перезавантажимо nginx і переконаємося що все працює.
sudo systemctl restart nginx