Обновление версии PHP на сервере Linux – важный шаг для поддержания безопасности и производительности веб-приложений. Каждое обновление включает не только новые функции, но и исправления уязвимостей, что критично для стабильной работы. В этой инструкции будет рассмотрено, как правильно обновить PHP на популярных дистрибутивах Linux, таких как Ubuntu и CentOS.
1. Проверка текущей версии PHP
Перед тем как обновить PHP, важно узнать текущую версию. Для этого откройте терминал и выполните команду:
php -v
Эта команда покажет установленную версию PHP и поможет убедиться, что обновление действительно требуется.
2. Добавление репозитория с последней версией PHP
Для получения актуальной версии PHP необходимо добавить в систему репозиторий, который поддерживает последние обновления. На Ubuntu для этого используется ppa:ondrej/php, а на CentOS – репозитории Remi. Чтобы добавить репозиторий на Ubuntu, выполните следующие шаги:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
На CentOS для начала установите репозиторий Remi:
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php8x
3. Обновление PHP
Теперь можно приступить к обновлению PHP. На Ubuntu выполните команду:
sudo apt-get install php
На CentOS используйте команду:
sudo yum update php
Если необходимо обновить конкретные пакеты PHP (например, php-fpm или php-cli), добавьте их в команду:
sudo apt-get install php-fpm php-cli
4. Перезапуск веб-сервера
После завершения обновления необходимо перезапустить веб-сервер, чтобы изменения вступили в силу. Для этого на Ubuntu и CentOS можно использовать следующую команду:
sudo systemctl restart apache2
или для Nginx:
sudo systemctl restart nginx
5. Проверка версии после обновления
После перезапуска сервера проверьте, что новая версия PHP установлена корректно, выполнив команду:
php -v
Теперь ваш сервер использует последнюю стабильную версию PHP, что обеспечит его безопасность и производительность.
Проверка текущей версии PHP на Linux
Для того чтобы узнать, какая версия PHP установлена на вашем сервере, откройте терминал и выполните команду:
php -v
Результат будет выглядеть примерно так:
PHP 7.4.3 (cli) (built: Mar 3 2020 15:53:47) ( NTS )
Здесь указана основная версия PHP (например, 7.4.3), а также дополнительная информация о сборке и используемой системе. Если система не распознаёт команду, возможно, PHP не установлен или не добавлен в системный путь. В таком случае следует установить PHP или добавить путь к исполнимому файлу в переменную окружения PATH.
Для более детальной информации, например, о конфигурации PHP, можно использовать команду:
php -i
Она выведет подробный список параметров конфигурации PHP, включая версии установленных расширений и другие важные данные. Этот метод полезен, если требуется узнать, как настроен PHP на сервере.
Обновление репозиториев и установка зависимостей для PHP
Для начала обновим репозитории. Это можно сделать с помощью команды:
sudo apt update
После обновления пакетов установим необходимые зависимости для PHP, включая репозитории, которые содержат актуальные версии PHP. Чтобы добавить репозиторий PHP, используйте следующую команду:
sudo add-apt-repository ppa:ondrej/php
После этого снова обновите список пакетов:
sudo apt update
Теперь установим нужные зависимости. Это можно сделать через команду:
sudo apt install software-properties-common
Эта утилита необходима для работы с репозиториями и добавления сторонних источников. Убедитесь, что у вас установлены все необходимые пакеты для работы с PHP, такие как:
sudo apt install php-cli php-fpm php-mysql php-xml php-mbstring php-curl php-zip
Пакеты могут варьироваться в зависимости от нужд проекта. Если требуется установить дополнительные модули, добавьте их в команду установки. Например, для работы с Redis:
sudo apt install php-redis
После установки зависимостей перезапустите сервер PHP-FPM:
sudo systemctl restart php7.4-fpm
Замените номер версии PHP на актуальную, если вы обновляете другую версию. После перезапуска убедитесь, что PHP правильно работает, проверив версию:
php -v
Установка новой версии PHP через пакетный менеджер
Для Ubuntu/Debian:
1. Обновите список пакетов:
sudo apt update
2. Установите необходимые зависимости для добавления репозиториев:
sudo apt install software-properties-common
3. Добавьте репозиторий с нужной версией PHP. Например, для PHP 8.1 используйте:
sudo add-apt-repository ppa:ondrej/php
4. Обновите список пакетов:
sudo apt update
5. Установите PHP и необходимые расширения. Для PHP 8.1 это будет выглядеть так:
sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring
6. После установки проверьте версию PHP:
php -v
Для CentOS/Red Hat:
1. Установите репозиторий EPEL (если он не установлен):
sudo yum install epel-release
2. Добавьте репозиторий Remi, который содержит актуальные версии PHP:
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
3. Включите репозиторий Remi для установки PHP 8.1:
sudo yum module enable php:remi-8.1
4. Установите PHP и нужные расширения:
sudo yum install php php-cli php-fpm php-mysqlnd php-xml php-mbstring
5. Проверьте версию PHP:
php -v
Для обеих систем возможно установить дополнительные расширения PHP с помощью команды apt install
(для Ubuntu/Debian) или yum install
(для CentOS/Red Hat).
Проверка правильности установки новой версии PHP
После обновления PHP важно убедиться, что новая версия установлена и работает корректно. Для этого выполните несколько проверок.
Первым шагом откройте терминал и выполните команду:
php -v
PHP 8.1.0 (cli) (built: Nov 29 2021 09:15:39) (NTS)
Если версия не обновилась, проверьте настройки репозиториев или правильность выполнения шагов обновления.
Второй проверкой является тестирование работы PHP в веб-сервере. Для этого создайте файл info.php
в директории вашего веб-сервера (например, /var/www/html/
для Apache) и добавьте следующий код:
<?php phpinfo(); ?>
Если версия на странице не совпадает с установленной, проверьте, правильно ли настроен ваш веб-сервер для использования новой версии PHP. Для Apache это можно сделать через команду:
sudo a2enmod php8.1
После этого перезапустите сервер:
sudo systemctl restart apache2
Для Nginx также проверьте файл конфигурации на соответствие новой версии PHP в настройках fastcgi_pass
.
Для дополнительной проверки можно запустить простой PHP-скрипт с функцией phpinfo()
, чтобы убедиться, что все расширения и модули корректно подключены.
Если все проверки прошли успешно, новая версия PHP установлена правильно и готова к использованию.
Настройка Apache или Nginx для работы с новой версией PHP
После обновления PHP важно правильно настроить веб-сервер для использования новой версии. Рассмотрим настройки для Apache и Nginx.
Apache
1. Убедитесь, что установлен модуль libapache2-mod-php для новой версии PHP. Для этого выполните команду:
sudo apt install libapache2-mod-php7.x
где 7.x – это версия PHP, которую вы хотите использовать.
2. Отключите старую версию PHP, если она была включена:
sudo a2dismod php5.x
где 5.x – это версия, которую вы больше не хотите использовать.
3. Активируйте модуль для новой версии PHP:
sudo a2enmod php7.x
4. Перезагрузите Apache для применения изменений:
sudo systemctl restart apache2
Nginx
1. Убедитесь, что для новой версии PHP настроен PHP-FPM. Установите пакет, если он не установлен:
sudo apt install php7.x-fpm
2. Откройте конфигурационный файл сайта в директории /etc/nginx/sites-available/ и измените строку с fastcgi_pass на соответствующую версию PHP-FPM:
fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
3. Проверьте конфигурацию Nginx на ошибки:
sudo nginx -t
4. Перезапустите Nginx для применения настроек:
sudo systemctl restart nginx
После этих шагов Apache или Nginx будет работать с новой версией PHP.
Удаление старых версий PHP и очистка системы
После обновления PHP на Linux важно удалить старые версии, чтобы избежать конфликтов и освободить место на диске. Процесс очистки включает несколько шагов, в зависимости от используемой версии и типа установщика.
Чтобы удалить старые версии PHP, выполните следующие действия:
- Проверьте установленные версии PHP:
php -v
Эта команда покажет текущую активную версию PHP.
- Список установленных пакетов PHP можно получить через менеджер пакетов. Например, для Ubuntu:
dpkg --get-selections | grep php
Это выведет все установленные пакеты PHP.
- Для удаления старых версий используйте команду:
sudo apt-get remove php7.4 php7.4-cli php7.4-fpm
Замените версию на ту, которую хотите удалить. Убедитесь, что удаляете все компоненты, связанные с этой версией.
- Чтобы удалить ненужные зависимости, используйте:
sudo apt-get autoremove
Эта команда удалит пакеты, которые больше не требуются.
- Очистите кеш пакетов:
sudo apt-get clean
Это удалит временные файлы, которые больше не используются.
После удаления старых версий PHP стоит проверить, что новая версия работает корректно. Для этого выполните команду:
php -v
Если PHP работает правильно, можно завершить очистку, удалив конфигурационные файлы старых версий, если они остались:
- Удалите конфигурационные файлы, если они не были удалены при удалении пакетов:
sudo rm -rf /etc/php/7.4
Замените 7.4 на версию, которую удаляете.
- Проверьте наличие старых логов и очистите их:
sudo rm -rf /var/log/php*
Теперь система должна быть очищена от старых версий PHP и связанных с ними файлов.