Установка разных версий PHP на Linux Ubuntu
Обновлено: 03.04.2023 Опубликовано: 06.11.2021
В Ubuntu можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий PHP и жонглирования ими.
Установка PHP
В зависимости от необходимой версии PHP и версии Ubuntu, подход к установке может отличаться.
Установка базовой версии
Это самый простой способ. Каждая версия Ubuntu в своем репозитории содержит соответствующую версию PHP.
Посмотреть, какая версия будет установлена из репозитория системы можно командой:
apt search —names-only ‘^php[.0-9]$’
Установка выполняется одной командой:
apt install php
Установка определенной версии
Если нам необходима версия PHP, которой нет в репозитории, выполняем установку дополнительного — для этого вводим две команды:
apt install software-properties-common
.
FileNotFoundError: [Errno 2] No such file or directory: ‘gpg’
Устанавливаем gnupg-agent:
apt install gnupg-agent
Теперь можно установить нужную версию интерпретатора:
apt-get install php7.4
apt-get install php8.0
* в данном примере 7.4 и 8.
Выбор версии PHP по умолчанию
Посмотреть текущую версию php, которая работает по умолчанию можно командой:
Сменить версию по умолчанию:
update-alternatives —config php
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
————————————————————
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode
* в данном примере используется версия php8 как версия по умолчанию.
Для смены, система предложит нам выбрать версию из списка:
Press to keep the current choice[*], or type selection number: 1
* так мы переключимся на php7.4.
Установка расширений
Расширения устанавливаются с синтаксисом:
apt install php-
Для версии, которая идет по умолчанию в репозитории, установку можно выполнить так:
apt install php-mysqli
В остальных случаях обязательно указываем версию:
apt install php7.4-mysqli
Настройка PHP
В Ubuntu настройки PHP находятся в разных файлах — для каждой версии и для каждой системы, которая обрабатывает запросы.
Например, для php версии 8.0, которая будет запускаться из командной строки, файл будет:
php переключение версий
После обновления до Ubuntu 16.04 из коробки установлен php7. Для моих проектов использую php5.6. Подскажите, как управлять версиями, и использовать php5.6 по умолчанию?
$ php -v PHP 7.0.6-1+donate.sury.org~xenial+1 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies $ whereis php php: /usr/bin/php /usr/bin/php7.0 /usr/bin/php5.6 /usr/lib/php /etc/php /usr/share/php7.0-opcache /usr/share/php7.0-gd /usr/share/php /usr/share/php5.6-opcache /usr/share/php7.0-mcrypt /usr/share/php7.0-json /usr/share/php7.0-common /usr/share/php7.0-readline /usr/share/php5.6-json /usr/share/php7.0-xml /usr/share/php7.0-mysql /usr/share/php5.6-common /usr/share/php5.6-readline /usr/share/man/man1/php.1.gz
Отслеживать
67.9k 216 216 золотых знаков 77 77 серебряных знаков 219 219 бронзовых знаков
Выбор версии PHP и управление расширениями
В настоящее время на хостинге RU-CENTER доступны версии интерпретатора PHP 5.2 — 5.6, 7.0 — 7.4, 8.0 — 8.2.
Прежде чем приступить к настройке модуля PHP, необходимо узнать у разработчиков скриптов сайта или в документации к CMS технические требования к серверу хостинга и настройкам PHP в частности. Примеры настройки хостинга RU-CENTER под некоторые популярные CMS опубликованы в разделе CMS.
1. Выбор версии модуля PHP
Управление модулем PHP производится в разделе Управление веб-сервером → Управление модулем PHP панели управления хостингом.
Доступные для подключения версии модуля PHP представлены в разделе Управление веб-сервером → Управление модулем PHP. Для того чтобы подключить подходящую под требования вашего сайта версию, необходимо выбрать её из выпадающего списка и нажать кнопку Применить. После подключения нужной версии модуля PHP вы можете перейти к его настройке.
Версия PHP по умолчанию выбирается для всех сайтов, размещенных на данной услуге хостинга. Исключение составляют сайты, для которых была включена отдельная версия PHP с помощью услуги «Мультисайт».
2. Управление расширениями модуля PHP и его параметрами
Под выбором версий PHP по умолчанию располагается модуль с выбором настраиваемой версии PHP и список подключенных расширений.
Чтобы подключить расширение:
- в блоке Расширения нажмите на ссылку Управление расширениями,
- найдите в открывшемся списке нужное расширение, пометьте его галочкой и сохраните изменения.
3. Получение подробной информации о настройках PHP
В панели управления показаны только отключаемые расширения. Получить полный список расширений и параметров вы можете с помощью функции phpinfo():
- создайте в каталоге docs вашего сайта файл info.php со следующим содержимым: phpinfo();
?> - обратитесь к данному скрипту по адресу http://ваш_домен/info.php — так вы получите подробную информацию о модуле PHP.
Описание параметров php.ini доступно в официальной документации на сайте http://php.net.
4. «Мультисайт» и функция MultiPHP
«Мультисайт» — комплексная опция, в рамках которой услуга получает дополнительные мощности:
MultiPHP — это функционал расширенного управления настройками PHP, позволяющего выбрать для каждого сайта свою версию PHP.
Изменить версию для сайта можно в разделе Сайты → domain.ru → Настройки → Версия PHP.
Выбранная версия не изменится, пока в данном разделе не выбрать другую, или по умолчанию, даже в случае отказа от опции «Мультисайт».
Подключить опцию можно в разделе Смена тарифа вашей услуги. Подробнее в инструкции «Как изменить тариф хостинга».
Архивные тарифы виртуального хостинга (заказанные до 03.12.2020) имеют встроенный функционал MultiPHP и позволяют размещать несколько сайтов. В связи с чем опция «МультиСайт» для них недоступна.
Версии PHP: зачем их обновлять и чем они различаются
Почти 80% всех существующих сайтов, по данным W3Techs, работают на базе языка программирования PHP. Значительную их часть составляют сайты, созданные с помощью WordPress и других популярных CMS. Однако, несмотря на такую распространнёность, не все владельцы сайтов знают о необходимости переходить с устаревших версий PHP на более актуальные. Что отражается на качестве работы сайтов.
Кратко о версиях PHP
Какие версии PHP считаются актуальными, а какие — устаревшими? Чтобы разобраться в этом, рассмотрим этапы жизненного цикла версий этого языка:
- Релиз. Выпускается новая версия PHP, которая прошла все этапы предварительного тестирования и подходит для использования в «боевых условиях».
- Активная поддержка. В течение двух лет после релиза версия продолжает совершенствоваться. Выходят регулярные обновления, вносятся корректировки и исправляются баги. Обеспечивается полная безопасность версии.
- Минимальная поддержка. Ровно через два года после релиза работа по развитию версии прекращается. В течение следующего года происходят только критические обновления, касающиеся серьёзных угроз безопасности.
- Завершение жизненного цикла. Через год критических обновлений защиты версия перестаёт поддерживаться полностью. Однако ей можно продолжать пользоваться, но уже на свой страх и риск.
На момент публикации этого материала продолжают поддерживаться три версии PHP:
- 7.4 (дата релиза — 28 ноября 2019 года, самая актуальная версия);
- 7.3 (дата релиза — 6 декабря 2018 года, активная поддержка подходит к концу);
- 7.2 (дата релиза — 30 ноября 2017, активно не поддерживается, важные обновления безопасности скоро перестанут выходить).
Версии 7.1, 7.0 и все версии PHP 5 больше не обновляются. А уже в конце 2020 года самой актуальной станет версия 8.0.
А что насчёт PHP 6? Если вы не знаете, почему шестые версии здесь не упоминаются, то сейчас поясним.
PHP 6: строили, строили, но не построили
На разработку версии 6.0 было потрачено немало времени. Предполагалось, что самым важным нововведением в ней станет поддержка символов Юникода, благодаря которой возможности языка были бы расширены. Однако разработчики PHP 6 столкнулись со множеством трудностей, что вынудило их постепенно отказаться сначала от внедрения Юникода, а затем и вообще от запуска версии 6.0.
Пока шла работа над PHP 6, на эту тему было выпущено немало статей и книг. И представление о PHP 6 как о версиях языка с внедрённым Юникодом уже успело устояться в IT-сообществе. Поэтому новому поколению языка, пришедшему на смену PHP 5, было решено присвоить номер 7.
PHP 7: обновление, которое ждали больше 10 лет
Первая версия PHP 7 была представлена ещё в конце 2015 года, но до сих пор почти половина сайтов в мире, по информации WTechs, не перешли на PHP 7 и остаются на PHP 5. Каких возможностей лишены те, кто всё ещё не обновился?
Версия 7.0 основывалась на новой технологии phpng — PHP Next Generation, «Следующее поколение PHP». Она создавалась с целью увеличить производительность языка без снижения совместимости. В реальной практике PHP 7 оказался примерно в 2 раза быстрее PHP 5, а разница в производительности на синтетическом тесте bench.php составила вовсе 14 раз.
С заботой о пользователях мобильных гаджетов разработчики также поработали над исполнением движка и уменьшили потребление памяти при работе PHP. Также с помощью Abstract syntax tree (AST) операционный код стал более производительным. И в целом код на PHP 7 стал чище, понятнее и удобнее.
Помимо внедрения нововведений, в версии 7.0 изменили или вовсе убрали устаревшую и ненужную функциональность. С одной стороны, это несколько нарушило совместимость языка с ранее созданным и необновлённым ПО. Но с другой, принятые меры позволили сделать настоящий прорыв в развитии PHP.
PHP 8: взгляд в будущее
Версия 8.0 активно разрабатывается в данный момент, но о ней уже кое-что известно. Планируется, что в новейших версиях PHP будет генерироваться меньше кода. Для этого будет использоваться технология JIT (Just in Time). С её помощью при выполнении приложения весь код будет не компилироваться заново, а частично заимствоваться из уже скомпилированных версий.
Компиляции станет меньше и благодаря технологии FFI (Foreign Function Interface), которая упрощает вызов функций, написанных на разных компилируемых языках программирования. Благодаря JIT и FFI производительность PHP 8 должна ощутимо повыситься по сравнению с PHP 7.
Релиз первой альфа-версии 8.0 намечен на лето этого года. Затем традиционно будут представлены несколько альфа- и бета-версий, а также релизов-кандидатов, после чего 3 декабря 2020 года ожидается выпуск финального варианта.
Кратко об обновлении PHP
Какую версию PHP лучше всего использовать? Конечно же, самую актуальную на данный момент. Тогда вы всегда будете получать:
- потенциал для роста производительности сайта;
- надёжную защиту от вредоносных атак, использующих уязвимости в PHP;
- самый широких выбор ПО и плагинов, совместимых с сайтом.
О работе с PHP на VPS мы пока говорить не будем, так как для этого нужен отдельный материал. Поэтому дальше мы дадим рекомендации пользователям виртуального и специализированного хостинга.
Узнайте, какая версия PHP используется на вашем сайте. Эта информация доступна в настройках веб-сервера: например, на хостинге «Джино» они расположены здесь). Владельцы сайтов на WordPress могут увидеть текущую версию PHP в панели администратора, в разделе Инструменты / Здоровье сайта / Информация. Также вы можете написать этот скрипт, разместить его в файлах сайта и обратиться к нему из браузера:
В результате будет показана информация о версии.
Если ваша текущая версия PHP не входит в число поддерживаемых, взвесьте все «за» и «против» перед обновлением. Ведь чем старее скрипты вашего сайта, тем сложнее может быть перейти на поддерживаемую версию PHP. Тем, кто готов обновиться, нужно сделать следующее:
- Убедитесь, что у вас сохранена свежая резервная копия файлов сайта.
- Проверьте совместимость используемого ПО, фреймворков, библиотек, плагинов с выбранной вами версией PHP. Если что-то из этого не совместимо с ней, убирайте и заменяйте на более современные аналоги.
- Измените версию PHP на хостинге, через настройки сервера в контрольной панели или через запрос в техподдержку.
- После обновления протестируйте все функции сайта, при тестировании проверяйте лог на предмет «Fatal error» и других ошибок, которых раньше не было. Если все функции работают, а на страницах сайта появляются предупреждения PHP — отключите отображение ошибок.
- Если после обновления возникли серьёзные нарушения в работе сайта, верните старую версию PHP. Разберитесь в проблемах сами или обратитесь за помощью к специалистам.
Чтобы переход на новую версию PHP никогда не составлял большого труда, постоянно адаптируйте свой сайт под последнюю поддерживаемую версию языка. А также используйте регулярно обновляемые плагины и ПО, избавляясь от всего, что не обновлялось больше года и не подлежит использованию с актуальными версиями PHP.