Изменить версию php windows

Подключение разных версий PHP (7 и 5) в XAMPP (Windows)

У меня возникла необходимость подключить несколько разных версий PHP в XAMPP для Windows. Хотя изначально задача показалась простой, просидел я с этим пару часов точно. Мой XAMPP шел с PHP 7.2, но мне понадобились версии PHP 7.0 и PHP 5.6, т.к. два других проекта просто не стартовали на новой версии. Где-то не хватало расширений, где-то не подходил новый синтаксис.

Мой XAMPP установлен в каталоге C:\xampp, чтобы не надо было прописывать длинные пути. Плюс, гарантированно не было пробелов в путях (иногда проблемы возникают именно из-за этого).

Итак, моя обновленная версия XAMPP от 1 февраля 2018 года использует Apache 2.4.29 и PHP версии 7.2.2, подключаемый как модуль при старте веб-сервера.

Качаем другую версию PHP

Первое, что нам надо сделать, это скачать необходимую сборку PHP. Сразу скажу — есть большая разница, что именно качать. Я порядком устал, пытаясь понять, почему у меня не запускаются те или иные модули.

Если вы загуглите что-то вроде «windows php 5.5», то скорее всего попадаете на эту страницу: https://windows.php.net/downloads/releases/archives/

Казалось бы, все круто, выбирай — не хочу. Но проблема в том, что по какой-то причине модули (extensions) в этих архивах скомпилированы для других версий PHP. И большая часть из них у вас просто напросто не заработает. Например, всем очень нужный curl.

При этом ошибка в логах будет совершенно непонятной и не информативной:

Поэтому я рекомендую качать PHP из другого источника: https://windows.php.net/download/

Здесь PHP был, видимо, собран заново, т.к. судя по news.txt из этого каталога, дата его последнего обновления — аж 01 марта 2018 года.

Обращаю ваше внимание! Нам нужна версия для x86-систем! Несмотря на то, какая операционная система у вас на компьютере, XAMPP собирается с x86-программами (видимо, чтобы гарантированно работать на старых компьютерах).

Устанавливаем новую версию PHP

Итак, вы скачали и разархивировали ваш новый PHP. Кладите его архив в каталог XAMPP, только не заменяйте оригинальный. Например, я положил его «рядом» и назвал в соответствии с его версий:

После этого необходимо зайти в этот каталог и скопировать файл php.ini-development в php.ini. Затем открыть его и изменить опцию extension_dir, чтобы она указывала в каталог с модулями для текущей версии. У меня она выглядит так:

Сохраняем и закрываем файл.

Теперь идем в каталог C:\xampp\apache\conf\extra

Тут нас интересует файл httpd-xampp.conf. Именно в нем хранятся настройки PHP, который будет подцеплять Apache. Скопируйте этот файл и эту копию переименуйте в httpd-xampp_php7.2.conf (если у вас была версия 7.2, как у меня).

Нам нужны копии этих конфигов, чтобы быстро переключать сервер на нужную версию PHP!

Теперь откройте огинальный файл (т.к. их два, не страшно что-то испортить) и измените кусок сверху на вот такой:

Также нужно изменить все строки, где встречается путь до старого каталога PHP (как в примере выше) и все упоминания php7_module заменить на php5_module.

Читайте также:  Установка mac os leopard флешки

В итоге у меня это выглядит вот так:

Пробуем стартануть Apache

Собственно, это всё. Если вы скачали правильную версию PHP и не забыли что-нибудь поменять, попробуйте стартануть Apache. Он должен заработать сразу же. Как у меня:

Надеюсь, все прошло как по маслу. Если нет, попробуйте поэксперементировать с версиями и сборками PHP. Убедиться, что «битность» программы соответствует веб-серверу. В конце-концов, опишите вашу проблему в комментариях, я попытаюсь помочь.

Как обновить PHP сайта и зачем это нужно

Лучшее — враг хорошего? Мы рассмотрели, как обновить версию PHP, на которой работает ваш сайт, и для чего это нужно.

Актуальная версия PHP

Сейчас проходит бета-тестирование PHP 7.3 — последний релиз в этом семействе. Актуальной на сегодняшний момент считается 7.2, которая превосходит в скорости и функциональности все прошлые версии.

Вот неполный список возможностей PHP 7:

  • типы скалярных параметров и подсказки (hints) по возвращаемым типам;
  • две новые функции CSPRNG;
  • анонимные классы;
  • оператор return в генераторах и другие обновления в них;
  • улучшение функции assert() с сохранением обратной совместимости.

Как обновить PHP на Windows

Здесь все очень просто и прозаично:

1. Скачиваем последнюю версию PHP

2. Удаляем старую

3. Устанавливаем новую.

4. Прописываем заново настройки в Apache и PHP.

Но прежде чем обновлять, нужно внимательно изучить раздел Appendices в документации к новой версии. В нем описывается устаревший функционал, который больше не применяется в языке. Новые версии не поддерживают старый код: особенно трудна миграция с пятой на седьмую, у которой очень слабая обратная совместимость.

Если разработчик использует неподдерживаемые функции, то кусок кода, в котором они есть, просто не заработает. Поэтому перед обновлением нужно серьезно проанализировать этот раздел и в соответствии с ним — свой код.

Зачем обновлять, если все работает

Резонный вопрос, которым задаются многие программисты. Если не обновлять язык на собственном сервере, вы просто лишаете себя преимуществ и возможностей очередной версии.

В каждом релизе PHP появляются новые фишки и функции, а также закрываются уязвимости. Например, is_countable позволяет определить тип переменной — перечисляемый или нет. Это очень удобная возможность для веб-разработчиков. Сейчас приходится использовать для определения типа переменной if, а в PHP 7.3 это можно будет сделать одной функцией.

Однако обновление версии PHP — это болезненный процесс для команды разработки, означающий многодневный рефакторинг кода и исправление ошибок — всё из-за проблем с обратной совместимостью в этом языке. Ранее установленные плагины и скрипты могут конфликтовать с новой версией, работать некорректно или не подключаться вообще, добавляя головной боли разработчикам.

Веб-хостинг Plesk в своем блоге на Хабре выложил статистику, какие версии PHP используют их пользователи на своих сайтах. В начале марта2018 года ситуация выглядела вот так:

Как видите, самую последнюю версию используют очень немногие. Консервативное большинство остается верным надежным технологиям — от PHP 5.1 до 5.6.

Обновлять или не обновлять: вот в чем вопрос

Мы скажем так: Святого Грааля в проблеме обновления нет. Подходить к нему нужно с позиции целесообразности. Большой проект перевести на PHP7 будет сложно: придется рефакторить всю кодовую базу, но ради чего? Любое изменение должно исходить из рабочей потребности.

Если проблем с поддержанием работоспособности сайта и скоростью загрузки нет, то переход на более современную версию — лишняя трата времени и средств. Если разработчикам всего хватает в функционале — в обновлении тоже нет смысла. Переход на новую версию не должен обосновываться тем, что это круто, модно и молодежно.

На старых сайтах, где сплошной легаси Legacy code Устаревшая часть кодовой базы проекта. , разработчикам вообще страшно что-либо менять, так как велик риск все случайно поломать. Проект стабильно работает, а значит, изменения ни к чему. Зато разработку новых сайтов однозначно нужно начинать с установки последней версии языка.

Читайте также:  Dell inspiron 15 7000 gaming драйвера windows 10

Заключение

Мы рассказали, как обновить PHP, и коснулись некоторых важных нюансов. Если вы хотите знать больше и стать высокооплачиваемым специалистом, советуем пройти наш курс «PHP-разработчик от0 до PRO». Из него вы узнаете все необходимое для профессиональной работы с этим языком.

Как изменить версию PHP на хостинге

Изменение текущей версии PHP может понадобиться в некоторых случаях. Ниже разберем, как поменять версию, когда это нужно, и какую именно версию PHP лучше выбрать. Также разберем, как менять версию интерпретатора в коммерческих панелях управления (cPanel, ISPmanager и Plesk), и на самых популярных хостингах с панелями собственной разработки.

Какие версии PHP сейчас актуальны и зачем менять

На данный момент (2018 год) актуальны следующие версии интерпретатора PHP:

  • PHP 5.3 (версия уже не новая, но все еще актуальная)
  • PHP 5.4 (наиболее распространенная версия пятой ветки, часто является минимальным требованием для многих скриптов)
  • PHP 5.6 (последняя стабильная версия пятого поколения, имеет ряд нововведений по сравнению с 5.4)
  • PHP 7.0 (первая стабильная версия 7-й ветки, имеет смысл использовать, только если нет более свежего, или ваше приложение привязано к конкретным особенностям этой версии)
  • PHP 7.1 (более свежая версия, на многих хостингах, максимум, что доступно)
  • PHP 7.2 (последняя стабильная версия)

Переходить на 7-ю ветку PHP однозначно стоит, если используете современную CMS (например, Drupal 8) или framework (например, Laravel 5.5 и выше). Также многие даже не очень свежие скрипты и приложения могут требовать минимум php5.4.

Еще одной причиной перехода на последние версии PHP может быть, написание или использование CLI (консольных) php-приложений, когда нет необходимости поддерживать обратную совместимость.

Изменение версии PHP в коммерческих панелях управления

cPanel

В панели cPanel всё очень просто (не зря большинство хостеров в мире используют именно ее). После логина, ищем раздел «Programming», там кликаем на иконку «PHP Config», в открывшемся окне выбираем нужную версию и сохраняем.

ISPManager

В панели ispmanager после входа идем в боковое меню, раздел «WWW». Далее выбираем пункт «WWW-Домены», отмечаем нужный нам домен и нажимаем кнопку «Изменить» сверху. На открывшейся странице ищем раздел «Дополнительные возможности», там строка «Версия PHP». И через выпадающий список задаем нужную версию. Для сохранения изменения не забудьте нажать кнопку «ОК». Для примера была взята панель хостинга SmartApe.

Parallels Plesk

Переходим в раздел «Сайты и домены». Далее «Смена версии PHP», и выбираем нужную версию.

Изменение версии PHP на популярных хостингах с собственной панелью

TimeWeb

Перейти на Таймвебе «Главное меню (боковое) – Сайты – Выбрать нужный сайт – нажать зеленую кнопку с шестеренкой напротив сайта – в раскрывающемся списке выбрать версию PHP».

На данный момент доступны следующие версии: 5.3, 5.4, 5.6, 7.0, 7.1. Рекомендуем выбирать или 5.6 или 7.1.

Beget

С главного экрана панели управления перейти в раздел «Сайты». Напротив нужного сайта есть сиреневый значок с надписью «PHP» — нажать на него. В раскрывающемся списке выберите необходимую версию.

У Бегета доступны версии PHP: 5.2, 5.3, 5.6, 7.0, 7.1, 7.2. Рекомендуем использовать или php5.6, или php7.2.

Обратите внимание, у этого хостера можно не только выбрать версию php для сайта, но и прямо из панели (в том же окне, что и настройка версии) можно задать необходимые директивы для файла php.ini. В некоторых случаях это может быть очень полезно.

SprintHost

Чтобы сменить версию PHP у компании СпринтХост, в главном боковом меню перейдите в раздел «Сайты и домены – Управление сайтами». Выберите нужные вам домены (нужно установить галочку) и из формы под списком доменов выберите нужную версию PHP. Нажмите кнопку «Применить для сохранения».

SprintHost предоставляет следующие версии интерпретатора: 5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2 – завидное разнообразие! К выбору рекомендуем 5.6 или 7.2

Читайте также:  Ophcrack windows 10 tables

Webhost1

Для управления версией PHP у ВебХост1 нужно войти в «хостинг-панель» (да-да, у них раздельные панели управления хостингом и биллингом!). В панели управления перейти в раздел «Домены». В таблице с перечнем ваших доменов, в строке с нужным вам найдите ссылку «Настройки» и нажмите её. На появившейся странице выберите нужную версию PHP и нажмите кнопку «Изменить настройки».

У Webhost1 доступны всего 3 версии PHP: 5.3, 5.6 и 7.1. По умолчанию на новых аккаунтах будет использоваться php 7.1.

HostLand

В Хостлэнде для смены PHP в главном меню выберите раздел «Домены». Затем в выпадающем списке напротив нужного домена установите нужную версию языка и нажмите рядом синюю кнопку с дискеткой для сохранения настроек.

Hostland позволяет выбрать PHP 5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2. Мы рекомендуем использовать версии 5.6 и 7.2.

Изменение текущего PHP на VPS/VDS-сервере в консоли

Что это значит и зачем нужно

Иногда бывают ситуации, когда для выполнения консольных php-команд вам нужна версия PHP отлична от текущей.

Проверить, какие версии установлены на сервере можно так:

Чтобы узнать текущую консольную (cli) версию используем php -v:

Тут видно, что на данный момент у нас текущая версия php для консоли 5.6.

Проверяем путь запуска cli-php:

Текущая дефолтная версия задается через /usr/local/bin/php – это символическая ссылка. Узнать на какую именно версию ведет эта ссылка просто:

Как изменить

Предположим, что нам нужно изменить версию 5.6 на 7.2. Для этого нам нужно просто переназначить ссылку /usr/bin/php на /opt/php72/bin/php. Делается это командой:

Как изменить версию php в консоли

Если у вас установлено несколько версий php в системе, то при вызове команды php в консоли, будет использоваться одна из них. Иногда необходимо для каких-то скриптов или сервисов управлять версией php в консоли. Я расскажу, как ее изменить.

У меня на сервере Debian установлены 2 версии php — 5.6 и 7.0. Для начала проверим, какая версия используется в данный момент:

Посмотрим, где располагается сам бинарник php:

Оказывается, что /usr/bin/php является символьной ссылкой. Посмотрим, куда она ведет:

Это еще одна символьная ссылка. Смотрим, куда ведет она:

На седьмую версию php. Заменим ее на 5.6, которая у меня установлена по адресу /usr/local/bin/php. Редактируем символьную ссылку:

Проверяем текущую версию php в консоли:

Все получилось. Теперь в консоли по-умолчанию будет использоваться нужная версия php. Можно проверять скрипты, не указывая полный путь к нужной версии.

Можно было поступить и по-другому. При вызове php в консоли, имя проверяется в переменной $PATH. Посмотреть ее значения можно командой:

Директории проверяются в том порядке, как они перечислены. Где будет найдено первое совпадение, тот файл и будет использоваться. В моем случае директория /usr/bin, где жила символьная ссылка на php7.0 стоит раньше, чем /usr/local/bin, где расположена php5.6. Можно было просто поменять местами эти директории в PATH и версия по-умолчанию станет 5.6, так как ее бинарник php будет найден раньше.

Более гибко управлять версиями php в системе можно с помощью программы update-alternatives. Она может делать в том числе и то, что мы сейчас проделали, только автоматически, в зависимости от своих настроек. С ее помощью можно более гибко управлять версиями, задавать приоритеты использования той или иной версии, быстро их переключать в полуавтоматическом режиме.

Мне все это не надо, поэтому не стал сильно разбираться с ее работой, только познакомился с возможностями. Рассказываю о ней в качестве наводки для тех, кому захочется более подробно разобраться в этой теме. Она может быть актуальна, если у вас установлена какая-нибудь панель управления хостингом с разными версиями php. Например — plesk.

Оцените статью