
Изменение версии PHP на Ubuntu – задача, с которой сталкиваются многие разработчики, работающие с различными версиями этого языка. В большинстве случаев это необходимо для обеспечения совместимости с конкретными приложениями или библиотеками. Ubuntu предоставляет несколько простых инструментов для управления версиями PHP, но важно понимать особенности каждой из версий и их зависимостей, чтобы избежать ошибок в работе системы.
Шаг 1: Установите нужную версию PHP. Ubuntu использует репозитории, которые поддерживают различные версии PHP, начиная с 5.6 и до последней стабильной версии. Для установки новой версии PHP используйте команду sudo apt install php7.x, где 7.x – это желаемая версия. Например, для установки PHP 7.4 используйте sudo apt install php7.4.
Шаг 2: Смена версии PHP на сервере. После установки нескольких версий PHP важно выбрать активную версию для Apache или Nginx. Для Apache используйте команду sudo a2dismod php7.x для деактивации старой версии и sudo a2enmod php7.y для активации новой. Не забудьте перезапустить Apache с помощью sudo systemctl restart apache2, чтобы изменения вступили в силу.
Шаг 3: Переключение CLI версии PHP. Для работы с командной строкой необходимо изменить версию PHP, используемую по умолчанию. Это можно сделать с помощью утилиты update-alternatives. Введите команду sudo update-alternatives --config php, чтобы выбрать нужную версию из предложенного списка. После этого все команды, использующие PHP в CLI, будут работать с новой версией.
После выполнения этих шагов, система будет использовать указанную вами версию PHP для работы с веб-сервером и командной строкой. Чтобы убедиться в правильности установки, используйте команду php -v, чтобы проверить текущую версию PHP.
Проверка текущей версии PHP на Ubuntu

Для определения установленной версии PHP на Ubuntu, выполните несколько простых команд в терминале.
- Откройте терминал и выполните команду:
php -v
Эта команда выведет информацию о текущей версии PHP, например:
PHP 7.4.3 (cli) (built: Feb 1 2020 10:01:13) ( NTS )
В данном примере версия PHP – 7.4.3. Команда также покажет дополнительные данные о сборке и режимах работы PHP.
- Если у вас установлено несколько версий PHP, можно указать конкретную версию для проверки. Например, для PHP 7.4 используйте команду:
php7.4 -v
Если команда возвращает ошибку, это значит, что указанная версия не установлена на системе.
- Для проверки версии PHP, используемой веб-сервером (например, Apache или Nginx), создайте PHP-скрипт:
<?php phpinfo(); ?>
Сохраните файл с именем info.php в директории веб-сервера, обычно это /var/www/html, и откройте его через браузер:
http://localhost/info.php
На странице будет отображена информация о сервере, включая версию PHP, используемую для обработки запросов.
Удалите файл info.php после проверки, чтобы избежать утечек конфиденциальной информации о сервере.
Установка новой версии PHP с помощью apt
Для установки новой версии PHP на Ubuntu, первым шагом необходимо обновить пакеты с помощью команды:
sudo apt update
Затем добавьте репозиторий, содержащий нужные версии PHP. Для этого используйте команду:
sudo add-apt-repository ppa:ondrej/php
После добавления репозитория обновите список пакетов:
sudo apt update
Теперь можно установить необходимую версию PHP. Для этого выполните команду с указанием версии, например для PHP 8.1:
sudo apt install php8.1
Для установки дополнительных модулей PHP, таких как php8.1-cli, php8.1-fpm, или php8.1-mysql, используйте команду:
sudo apt install php8.1-cli php8.1-fpm php8.1-mysql
После установки новой версии PHP, нужно убедиться, что система использует её по умолчанию. Это можно сделать с помощью утилиты update-alternatives:
sudo update-alternatives --set php /usr/bin/php8.1
Также для переключения версий PHP для командной строки можно настроить конкретные версии для php-cli, php-fpm и других компонентов:
sudo update-alternatives --set phpize /usr/bin/phpize8.1
sudo update-alternatives --set php-config /usr/bin/php-config8.1
Проверьте, что новая версия PHP успешно установлена, выполнив команду:
php -v
Если вы хотите, чтобы сервер использовал новую версию PHP, необходимо перезапустить службу php-fpm:
sudo systemctl restart php8.1-fpm
Таким образом, вы установите и настроите нужную версию PHP для использования на Ubuntu через apt.
Переключение между версиями PHP с использованием update-alternatives

Чтобы начать использовать `update-alternatives`, убедитесь, что на вашем сервере установлены все необходимые версии PHP. Например, для установки PHP 7.4 и PHP 8.0 используйте следующие команды:
sudo apt install php7.4 php8.0
После установки версий можно зарегистрировать их в `update-alternatives`. Для этого выполните команду для каждой версии PHP, указав путь к соответствующему исполнимому файлу:
sudo update-alternatives --set php /usr/bin/php7.4
sudo update-alternatives --set php /usr/bin/php8.0
Теперь для переключения между версиями PHP, достаточно использовать команду:
sudo update-alternatives --config php
При выполнении этой команды будет предложено выбрать одну из доступных версий. Вам нужно будет ввести номер версии, которую вы хотите активировать. После выбора версия будет применена по умолчанию для всех команд, использующих PHP.
Также, для управления версиями PHP для других компонентов, таких как `phpize` и `php-config`, используйте аналогичные команды, указав нужные пути к файлам:
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4
Таким образом, с помощью `update-alternatives` можно быстро и удобно переключаться между версиями PHP на вашем сервере, обеспечивая гибкость в работе с различными проектами, требующими разных версий PHP.
Настройка веб-сервера для работы с новой версией PHP

После установки новой версии PHP на Ubuntu, необходимо настроить веб-сервер для ее использования. В этой статье рассмотрим настройку популярных веб-серверов Apache и Nginx.
Для Apache, нужно сначала убедиться, что модуль PHP для выбранной версии установлен. Выполните команду:
sudo apt install libapache2-mod-phpX.X
Замените X.X на актуальную версию PHP, например, 8.0 или 7.4. После этого активируйте новый модуль:
sudo a2enmod phpX.X
Для завершения настройки перезапустите Apache:
sudo systemctl restart apache2
Для Nginx процесс немного отличается, так как Nginx не использует модули PHP напрямую. Вместо этого необходимо настроить PHP-FPM (FastCGI Process Manager). Убедитесь, что соответствующая версия PHP-FPM установлена:
sudo apt install phpX.X-fpm
Затем отредактируйте конфигурацию сайта, чтобы Nginx использовал новый PHP-FPM. Откройте файл конфигурации сайта, например:
sudo nano /etc/nginx/sites-available/default
Измените строку, указывающую на сокет или TCP-порт PHP-FPM. Например:
fastcgi_pass unix:/var/run/php/phpX.X-fpm.sock;
После изменений перезапустите Nginx:
sudo systemctl restart nginx
Также, важно следить за корректной настройкой прав доступа к сокетам PHP-FPM. Убедитесь, что пользователь веб-сервера (например, www-data) имеет доступ к соответствующему файлу сокета.
Для проверки работы PHP на сервере, создайте файл в директории вашего сайта и откройте его через браузер. Это покажет все настройки PHP, включая активную версию.
Решение проблем с совместимостью после обновления PHP

После обновления PHP на Ubuntu могут возникнуть проблемы совместимости с приложениями и библиотеками, которые использовали предыдущую версию языка. Чтобы минимизировать эти проблемы, следует учесть несколько аспектов.
Первое, что необходимо сделать после обновления PHP – это проверить совместимость всех используемых расширений и библиотек. Некоторые из них могут требовать обновлений или изменений в конфигурации. Основные проблемы могут касаться:
- Использования устаревших функций. PHP регулярно удаляет или изменяет функциональность функций в новых версиях. Например, функции, такие как
mysql_connect(), были удалены начиная с PHP 7.0. Использование таких функций может вызвать ошибки. - Совместимости с фреймворками. Некоторые популярные фреймворки, такие как Laravel или Symfony, могут не поддерживать последние версии PHP сразу после их выхода. Рекомендуется проверить документацию фреймворка для получения информации о поддержке версии PHP.
- Ошибка типа данных. Некоторые изменения в типах данных, такие как поведение оператора
==, могут повлиять на логику работы приложений. Лучше использовать строгие типы данных и операторы сравнения, чтобы избежать неожиданных ошибок.
Для устранения этих проблем можно предпринять следующие шаги:
- Проверка ошибок в логах. Просмотрите системные логи и логи веб-сервера (например,
/var/log/apache2/error.logили/var/log/nginx/error.log). Они могут содержать полезную информацию о проблемах совместимости. - Обновление зависимостей. Проверьте и обновите все зависимости вашего проекта. Использование инструментов, таких как
composerдля PHP, может помочь автоматически обновить библиотеки, совместимые с новой версией PHP. - Тестирование в песочнице. Прежде чем запускать обновленную версию PHP в продакшн-окружении, тестируйте все изменения на отдельном сервере или виртуальной машине. Это поможет избежать сбоев в работе приложения.
- Использование совместимых версий. Если ваше приложение не совместимо с последней версией PHP, временно вернитесь к предыдущей версии PHP, установив ее через
update-alternativesили используяppa:ondrej/phpдля установки нескольких версий PHP.
Регулярно обновляйте код и тестируйте его на совместимость с новыми версиями PHP. Это обеспечит бесперебойную работу вашего проекта и снизит риски при обновлениях в будущем.
Удаление старых версий PHP для освобождения места

После установки новой версии PHP на Ubuntu старые версии продолжают занимать место на диске, что может быть проблемой, особенно при ограниченном объеме памяти. Для оптимизации использования ресурсов важно удалить ненужные версии PHP. Чтобы сделать это правильно, нужно выполнить несколько шагов.
Сначала проверьте все установленные версии PHP с помощью команды:
dpkg --list | grep php
Это покажет список всех пакетов, связанных с PHP, включая версии, которые вы больше не используете. Обратите внимание на версии, которые могут занимать много места. Например, для удаления PHP 7.4 выполните следующую команду:
sudo apt-get purge php7.4 php7.4-cli php7.4-fpm php7.4-common php7.4-mysql
Эта команда удаляет не только саму версию PHP, но и все ее компоненты, которые больше не используются в системе. Важно, чтобы не удалить текущую версию PHP, которая активно используется. Проверить текущую версию PHP можно командой:
php -v
После удаления пакетов стоит почистить неиспользуемые зависимости с помощью:
sudo apt-get autoremove
Эта команда автоматически удаляет все зависимости, которые больше не нужны системе. Также можно выполнить очистку кеша APT, чтобы освободить место:
sudo apt-get clean
При удалении версий PHP важно убедиться, что у вас остается работающая версия, поддерживающая все необходимые приложения и скрипты. Регулярно проверяйте наличие старых и неиспользуемых версий, чтобы поддерживать систему в оптимальном состоянии.
Вопрос-ответ:
Как сменить версию PHP на Ubuntu?
Для смены версии PHP на Ubuntu нужно выполнить несколько шагов. Сначала установите необходимую версию PHP с помощью команд `sudo apt update` и `sudo apt install php<версия>`. После этого убедитесь, что новая версия PHP используется в вашем веб-сервере. Для этого используйте команду `sudo update-alternatives —set php /usr/bin/php<версия>`, где <версия> — это нужная версия PHP. Также не забудьте изменить настройки для веб-сервера, например, для Apache или Nginx, чтобы он использовал новую версию PHP.
Что делать, если после смены версии PHP на Ubuntu возникли ошибки на сайте?
Если после смены версии PHP на Ubuntu на сайте появились ошибки, первым делом стоит проверить конфигурацию веб-сервера. Убедитесь, что версия PHP, которую вы установили, правильно указана в настройках Apache или Nginx. Также можно проверить логи ошибок с помощью команд `tail -f /var/log/apache2/error.log` или `tail -f /var/log/nginx/error.log`, чтобы выявить возможные проблемы. Возможно, потребуется установить дополнительные модули PHP для вашей версии, такие как `php<версия>-cli`, `php<версия>-mysql` и другие в зависимости от вашего проекта.
Как проверить, какая версия PHP установлена на Ubuntu?
Чтобы проверить текущую версию PHP на Ubuntu, откройте терминал и введите команду `php -v`. Это выведет информацию о установленной версии PHP. Если вы хотите проверить версии PHP для конкретных веб-серверов (например, Apache или Nginx), можно также проверить конфигурационные файлы этих серверов или использовать команду `update-alternatives —display php`.
Могу ли я установить несколько версий PHP на Ubuntu и как их переключать?
Да, на Ubuntu можно установить несколько версий PHP. Для этого нужно установить каждую версию PHP с помощью команды `sudo apt install php<версия>`. Чтобы переключаться между версиями, используйте команду `sudo update-alternatives —config php`, которая покажет список доступных версий PHP. Выберите нужную версию, и она будет использоваться по умолчанию. Также нужно будет настроить веб-сервер, чтобы он использовал правильную версию PHP для каждого сайта, например, в конфигурации Apache или Nginx.
