Для чего нужна поддержка нескольких версий PHP на сервере и как их настроить в ISPmanager — Блог ISPsystem
При размещении сайтов на сервере, для них могут потребоваться разные версии PHP. Это связано со спецификой CMS. Например, если одна из систем управления контентом давно не обновлялась и использует более раннюю версию PHP, а другая обновляется часто и требует более свежей версии PHP «под капотом». Бывают случаи, когда CMS просто не поддерживает те или иные особенности версии PHP и отказывается запускаться на ней.
Как корректно настроить на сервере альтернативные версии PHP и обойти проблемы, рассказываю в этой статье.
Содержание
Ручная установка
Установка с помощью ISPmanager
Ручная установка, настройка и выбор версии PHP
Процесс установки PHP на сервер зависит от операционной системы и версии PHP, которую необходимо установить. Все действия выполняются в командной строке. Сначала выполняется базовая установка версии PHP. Затем администратор может установить альтернативные версии PHP и выбрать одну из них в качестве основной.
Базовая установка версии PHP
Базовая установка в наиболее популярных операционных системах выглядит так:
- В Debian-подобных системах используется команда
apt install php;
- В Centos —
yum install php
;
Эти команды устанавливают последнюю версию языка, доступную в репозитории.
Если же необходимо установить определённую версию PHP, которой ещё нет в репозитории операционной системы, то сначала надо выполнить две команды:
apt install software-properties-common
— команда устанавливает программное обеспечение для управления дистрибутивами и независимыми поставщиками программного обеспечения.
add-apt-repository ppa:ondrej/php
— добавляет в систему репозиторий, из которого, непосредственно, будут устанавливаться необходимые версии PHP.
После это можно выполнить команду для установки PHP, например, версии 7. 4:
Выбор версии PHP для установки её по умолчанию
Когда базовая установка версии PHP выполнена, он по умолчанию становится основной.
Чтобы проверить, какая в данный момент версия PHP установлена и работает по умолчанию, надо выполнить команду: php -v
А чтобы сменить версию по умолчанию, воспользуйтесь командой:update-alternatives --config php
После её выполнения можно увидеть подобный список версий и их статус. Например:
Selection | Path | Priority | Status |
---|---|---|---|
*0 | /usr/bin/php5.6 | 56 | auto mode |
1 | /usr/bin/php7.4 | 74 | manual mode |
2 | /usr/bin/php8.0 | 80 | manual mode |
В этом примере символ * (звёздочки) указывает на выбранную в текущий момент версию PHP на сервере — 5.
6.Для смены версии система предложит выбор: нажать Enter, чтобы оставить выбранной текущую версию, либо указать цифру необходимой версии (из перечисленных в списке выше) и нажать Enter: Press to keep the current choice[*], or type selection number: 1
В примере будет выбрана и установлена по умолчанию PHP версии 7.4.
Установка расширений
Чтобы установить необходимые расширения для PHP, нужно выполнить команду: apt install php-
Для PHP, который установлен в системе по умолчанию команда такая: apt install php-mysqli
Если версия (например, 7.4) установлена вручную, тогда команда будет такой: apt install php7.4-mysqli
Настройка PHP
Чтобы править настройки конкретной версии PHP, необходимо открыть для редактирования файл php.ini. Он может находиться в разных директориях в зависимости от установленного модуля. А значит, путь, который следует прописать в команде, будет отличаться. Например, для версии PHP 7.
nano /etc/php/7.4/cli/PHP.ini
Для модуля apache: nano /etc/php/7.4/apache2/PHP.ini
Для модуля fpm: nano /etc/php/7.4/fpm/PHP.ini
Как видите, чтобы изменить настройки PHP и установить модули, необходимо знать текущую версию PHP и пути установки. Если вы используете панель для управления веб-сервером ISPmanager, сложности можно обойти.
Важно: Если у вас на сервере есть ISPmanager использовать ручной способ не стоит – можно создать конфликты, и тогда PHP не будет работать как надо. Про ручной способ рассказываю для ознакомления и тех, кто предпочитает работать без панели управления.
Как установку и настройку PHP и его модулей упрощает ISPmanager
При работе через ISPmanager не обязательно пользоваться командной строкой для настройки PHP. Установка и настройка PHP находятся в разделе Настройки -> Настройки PHP
Раздел в ISPmanager с настройками PHP
Здесь можно установить недостающую версию PHP, не задумываясь о том, установлен ли необходимый репозиторий, настроить необходимую версию PHP и установить или отключить для неё требуемые расширения. Отключение расширений может потребоваться в случае конфликта с другим установленным на сервере программным обеспечением. Подробнее управление PHP описано в документации:Работа с PHP в ISPmanager
Я работаю с PHP через ISPmanager не только когда нужна настройка альтернативных версий. В следующий раз расскажу, как использую панель для загрузки через PHP большого объема данных и установки расширений.
ISPmanager для управления веб-сервером
Попробовать ISPmanager можно бесплатно на две недели. Панель упрощает администрирование веб-серверов и работу с сайтами. Например, вместо ручного конфигурирования Apache или Nginx или установки языков, достаточно выбрать настройки в интерфейсе — ISPmanager выполнит все настройки автоматически.
Попробовать ISPmanager
Обновление PHP до актуальной версии 7.4. Польза для eCommerce
PHP 7.3 мертв! И последняя версия PHP, поддерживаемая CS-Cart, — это 7.4. Давайте посмотрим, какие могут возникнуть угрозы, если вы остаетесь на старой версии PHP.
Актуальное состояние PHP на сегодня
PHP (сокращение от англ. Hypertext Preprocessor) является одним из самых популярных языков программирования. Это язык с открытым исходным кодом, который в основном применяется для веб-разработки. По данным W3Techs, PHP используется 79% всех веб-сайтов.
Статистика использования серверных языков (Источник)Однако существует одна проблема с использованием PHP. 38,9% сайтов по-прежнему работают на версии PHP 5.6 и ниже. То же относится и к сайтам на базе CS-Cart. Большинство из них до сих пор используют устаревшие и неподдерживаемые версии.
На наш взгляд, пользователи CS-Cart отказываются обновлять версию PHP по следующим причинам:
- Из-за отсутствия знаний о PHP в сообществе CS-Cart и его роли в обеспечении безопасности платформы.
- Из-за проблем совместимости с модулями и темами при смене версии PHP.
- Хостинг-провайдеры боятся выпускать новые версии PHP, чтобы не создавать проблем своим клиентам.
Наша команда хостинга придерживается того же графика окончания срока службы (EOL), что и PHP. Поэтому все сайты CS-Cart, которые находятся на хостинге у нас, остаются быстрыми и максимально защищенным с учетом известных ограничений платформы.
Зачем обновлять версию PHP
Версия PHP устаревает каждый год. Последняя версия PHP — 8.1.1, а последней поддерживаемой версией является версия 7.4. Чем выше версия, тем менее она уязвима перед злоумышленниками и вредоносными кодами. Сайтам на CS-Cart, для того чтобы сохранить актуальную версию PHP и совместимость версий платформы и языка, рекомендуется обновить PHP до версии 7.4. Вы можете проверить совместимость версий здесь.
Поддерживаемые версии PHP (Источник)Почему обновление версии PHP важно
Вы должны обновлять версию PHP до поддерживаемой версии, чтобы не отставать от современных тенденций и использовать новейшие технологии. Ниже приведены другие причины, раскрывающие важность поддержания актуальной версионности PHP.
1. Безопасность
Основная причина обновления PHP — убедиться, что вы запускаете свой eCommerce проект на версии, которая полностью поддерживается и регулярно обновляется, покрывая известные угрозы безопасности. Угрозы могут быть любые: DoS, вредоносный код, переполнение и повреждение памяти, XSS, обход каталога, обход информации и ее извлечение. Ежегодно обнаруживается множество уязвимостей, присущих более старым версиям PHP. Многие из них никогда не будет исправлены.
Угрозы безопасности PHP по годам (Источник)Поддерживаемые версии PHP означают, что эти протоколы регулярно пересматриваются и совершенствуются. Каждый из них включает основные и второстепенные обновления для повышения безопасности и устранения любых недостатков, сбоев конфигурации или других проблем. Регулярное обновление версии и поддержка осведомленности о последних версиях PHP и изменениях в них — это хорошая практика для владельцев онлайн-проектов.
2. Производительность
С релизом PHP 8 произошел огромный скачок в производительности! PHP 7. 4 также позволяет системе выполнять в три раза больше запросов по сравнению с PHP 5.6.
Сравнение версий PHP (Источник)3. Поддержка
Поддержка — еще одна важная причина, по которой вам необходимо использовать последнюю поддерживаемую версию PHP. Все дело в совместимости. Сайт может “упасть” при использовании неподдерживаемой версии. Именно веб-разработчики должны следить за актуальностью версии.
4. Больше возможностей для разработчиков
PHP 7.4 — последняя версия перед PHP 8 и последняя стабильная версия PHP. Она была выпущена 28 ноября 2019 года и получила много новых функций, дополнений синтаксиса и исправлений.
Вот только некоторые из улучшений, вошедших в PHP 7.4:
- Улучшенная вариативность типов.
- Предварительная загрузка для повышения производительности.
- FFI для лучшей разработки расширений в PHP.
- Стрелочные функции для более понятных однострочных функций.
- Типизированные свойства в классах
- Оператор присваивания, объединяющий нуль, как сокращение
- Символы подчеркивания можно использовать для форматирования числовых значений.
- Оператор распространения в массивах
К сожалению, многие разработчики забывают о поддержке версий, подвергая проекты нестабильности, угрозам и простоям в работе сайта.
Заключение
Мы всегда призываем владельцев сайтов на платформе CS-Cart использовать последние поддерживаемые версии PHP. Не только потому, что они более безопасные. Более новая версия может улучшить производительность. И если вы не хотите беспокоиться о проблемах совместимости и соответствия стека, вы можете положиться на нашу команду хостинга, которая освободит вас от бремени постоянного мониторинга версий PHP. Клиенты нашего хостинга получают рекомендации от наших экспертов, которые помогут сайтам оставаться быстрыми, безопасными и актуальными 24/7 365 дней в году.
СВЯЗАТЬСЯ С НАМИ
Ваш сайт работает на старой версии PHP? Вот как это проверить и что это значит.
Те из вас, у кого есть сайт на WordPress, должны знать одну новую техническую вещь. WordPress использует язык под названием PHP — он установлен и работает на вашем хостинг-сервере.
Вы можете позволить нашим программистам/веб-разработчикам беспокоиться о том, как это работает, но если у вас уже есть веб-сайт – читайте дальше. Это легко!
⠀
Хостинговые компании WordPress должны использовать на своих серверах самую стабильную версию PHP. Новая версия PHP 7.4.8 в два раза быстрее, чем ее предшественники — это необходимо учитывать для повышения производительности и скорости работы вашего веб-сайта. ⠀
Керен обсудила это с нашим ведущим программистом Томом, и ниже приведены вопросы и ответы, которые помогут вам понять важные вещи, например, как проверить вашу версию PHP и что нужно для ее обновления.
Итак, сначала вам нужно узнать, какая последняя, более стабильная версия. Вы можете проверить здесь последнюю версию PHP в любое время: https://en.wikipedia.org/wiki/PHP. И, как уже упоминалось, есть определенные преимущества в скорости, если ваш сайт работает на новейшей стабильной версии.
Итак, теперь вы хотите знать, что у вас есть для вашего веб-сайта, верно? Как говорит Том: «Версия PHP не является общедоступной информацией. Может быть, поэтому быстрый поиск в Google не дал никаких результатов для БЕСПЛАТНОГО онлайн-сервиса, определяющего версию PHP для указанного сайта».
3 способа проверить, какую версию PHP использует ваш сайт.
Информация о версии:
Существует простой способ проверить, не использует ли ваша хостинговая компания более старую версию PHP. Попросите программистов вашего веб-сайта установить плагин WordPress под названием «Информация о версии».
Посетите: https://wordpress.org/plugins/version-info/
После активации плагин покажет, какая версия PHP используется — вы увидите ее в нижней части панели администратора WordPress. Если на вашем веб-сайте используется версия ниже PHP 7, попросите вашего хостинг-провайдера обновить ее для вас. Если они не могут этого сделать, свяжитесь с нами, и мы можем посоветовать!
WPP Analyzer
Существует также платный сервис, который может предоставить список всех технологий, используемых на сайте, включая PHP и его версию. См. https://www.wappalyzer.com/lookup. У них также есть бесплатное расширение Chrome
Однако, если у вашего хостинг-провайдера реализованы строгие правила (а у большинства из них реализованы строгие правила!), версия PHP не будет отображаться.
Спросите своих хостов
Вы также можете отправить электронное письмо своим хостинг-провайдерам и спросить их: «На какой версии PHP работает мой веб-сайт?». Совет — укажите URL-адрес в своей теме, если вы работаете с людьми, это поможет им понять, какой из них, поскольку у них много клиентов!
Какие тесты необходимо выполнить после завершения обновления, чтобы мы знали, что сайт работает?
Каждая новая версия PHP представляет новые функции, изменения синтаксиса, устаревшие вещи. Последние 2 являются наиболее распространенными причинами поломки после обновления версии PHP. Разработчику, скорее всего, придется заняться изменениями синтаксиса здесь и там, заменить устаревшие функции или возможности новыми, то есть ему придется изучать новые вещи.
Обновления плагинов также важны, потому что следует ожидать обновления плагинов для новой версии PHP.
Сколько времени нам потребуется, чтобы выполнить обновление для хостинга TLD?
Обновление версии PHP занимает 5 минут. Обслуживание WP варьируется в зависимости от того, сколько новых вещей есть в новой версии PHP, которые влияют на сайт. Если вы постоянно обновляетесь, скорее всего, обслуживание сайта займет до 30 минут. Однако, если вы обновитесь, скажем, со старой 5.6 до 7.4, это может занять гораздо больше времени (2-4 часа) или даже может быть невозможно обновить. Это особенно важно, если определенные плагины, темы или функции слишком сильно зависят от версии PHP, на которой они были созданы. Например, мы не можем обновить [один из наших клиентов] до PHP 7, потому что их купленная тема несовместима и, вероятно, больше не разрабатывается.
Сколько времени требуется для обновления TLD, если вы размещаете в другом месте (обычно)?
Если мы можем выбрать нужную версию PHP в Панели управления, это легко и занимает 5-10 минут. В противном случае нам нужен хостинг-провайдер для этого. Если вы работаете на выделенном сервере, вам нужно нанять администратора сервера для выполнения такой работы, так как это довольно сложно.
Если они размещают в другом месте, какую информацию / логины им нужно отправить нам?
Данные для входа в панель управления, где мы либо будем искать список выбора версии PHP, либо просто добавим новый справочный билет, чтобы запросить обновление PHP у хостинга. Они либо выполнят переключение, либо перенесут наши файлы на другой сервер с этой версией PHP.
Чем грозит отсутствие последней версии PHP?
Скажу так: самый большой риск — это выбор плохого хостинг-провайдера!
В наши дни хороший хостинг-провайдер может легко построить систему, в которой вы можете переключаться между версиями PHP и выбирать предпочитаемую версию. Или они могут даже реализовать автоматическое обновление PHP, если хотите.
Помимо этого, безопасность и скорость являются наиболее значительными рисками. И, если посмотреть на это с другой стороны, преимущества были бы огромными. Том нашел на Kinsta график, показывающий улучшение скорости работы WP 5.3 на разных версиях PHP.
См. https://kinsta.com/blog/php-benchmarks.
Мы надеемся, что эта статья окажется для вас полезной и, смеем предположить, интересной!
Дайте нам знать, если вам нужна наша помощь, мы будем рады подключиться через PHP!
PS: посмотрите видео, из которого мы взяли избранное изображение:
macos — Как композитор проверяет версию php?
спросил
Изменено 7 месяцев назад
Просмотрено 49 тысяч раз
Мне просто интересно, как композитор проверяет, какой php использовать при проверке требований. Я использую MacOS и тип терминала:
композитор требует phpunit/phpunit
результат примерно такой:
Задача 1 - phpunit/phpunit 5.0.4 требует php >= 5.6 -> ваша версия PHP (5.5.27) или значение "config.platform.php" не удовлетворяет этому требованию....
Когда я проверяю версию php:
php -v
Результат:
PHP 5.6.10 (cli) (построено: 12 июня 2015 г., 14:08:56) Copyright (c) 1997-2015 PHP Group Zend Engine v2.6.0, Copyright (c) Zend, 1998–2015 гг. Технологии с Xdebug v2.2.5, авторское право (c) 2002-2014, Дерик Ретанс
Что такое:
какой php
php: псевдоним /Applications/MAMP/bin/php/php5.6.10/bin/php
Может кто-нибудь объяснить это. Заранее спасибо!
- php
- macos
- композитор-php
3
Composer может сказать вам, на какой версии PHP он работает, если вы укажете уровень отладки -vvv
.
Мне нравится запускать его с помощью команды about
, так как вывод относительно короткий.
композитор -vvv о
Пример вывода:
… Запуск 1.8.5 (2019-04-09 17:46:47) с PHP 7.3.5 на Darwin/18.6.0 …
Редактировать:
Это вызвало больший интерес, чем я ожидал, поэтому вот версия с более чистым выводом:композитор -vvv о 2>&1 | группа "PHP"
3
В MacOs X установка php по умолчанию находится в /usr/bin. Если вы обновите свой php, он, скорее всего, будет установлен где-то еще (например, /usr/local/php5), или если вы используете MAMP или что-то еще, он будет в другом месте. Просто убедитесь, что первое вхождение php при обходе вашего PATH совпадает с версией, которую использует ваш веб-сервер. (например, /usr/local/php5/bin перед /usr/bin в вашем PATH). Это решит вашу проблему.
1
Если вы использовали метод установки пакета, такой как apt-get в Ubuntu, есть вероятность, что исполняемый файл будет включать «shebang», указывающий на конкретный php, который следует использовать для запуска этого конкретного файла композитора.
При использовании команды composer
кли сначала решит, какой двоичный файл использовать. Запустив , какой композитор
вы можете найти, что это за двоичный файл.
$ какой композитор /USR/бен/композитор
Как только вы это узнаете, вы можете открыть файл, например, с помощью vim: vim /usr/bin/composer
(обычно для изменения двоичных файлов требуется доступ суперпользователя, поэтому вы не сможете испортить композитор, делая это ).
В первой строке двоичного файла композитора должен быть шебанг, возможно, похожий на #!/usr/bin/php
, который будет указывать исполняемому файлу композитора, как он должен работать.
Затем вы можете напрямую вызвать этот двоичный файл php, чтобы проверить его версию:
/usr/bin/php -v
1
(поделюсь этим здесь, потому что я искал его и приземлился здесь, но меня ничего не удовлетворило, поэтому я поделюсь с теми, кто попал сюда по той же причине:)
С помощью следующей команды вы можете проверить, какие пакеты композитора зависят от конкретного версия php:
зависит от композитора php | группа 8.