
Смена версии PHP на веб-сайте – это важная задача, которая напрямую влияет на безопасность и производительность вашего проекта. Веб-сервера часто предлагают несколько версий PHP для установки, и важно выбирать ту, которая оптимально подходит для вашего сайта. Неправильная версия может привести к снижению скорости работы, несовместимости с библиотеками или уязвимостям в системе безопасности.
Первый шаг – это проверка текущей версии PHP на вашем сервере. Для этого можно использовать команду php -v через SSH или посмотреть через панель управления хостингом, например, cPanel или Plesk. Также стоит оценить, какие версии PHP поддерживаются вашим хостинг-провайдером. Например, если ваш сайт работает на PHP 5.6, важно обновиться до более новой версии, так как поддержка этой версии официально завершена, и она не получает обновлений безопасности.
Выбор версии PHP зависит от нескольких факторов. Для большинства современных CMS, таких как WordPress, Joomla или Drupal, рекомендуется использовать PHP версии 7.4 или 8.0, так как эти версии обеспечивают высокую производительность и содержат исправления критических ошибок безопасности. PHP 8.1 и 8.2 могут быть еще более оптимизированы, но в некоторых случаях старые скрипты могут не поддерживать новые возможности и синтаксис.
После выбора версии PHP нужно провести настройку сервера для ее использования. В зависимости от конфигурации хостинга, это можно сделать через панель управления или с помощью командной строки. В cPanel, например, можно перейти в раздел «Select PHP Version» и выбрать необходимую версию. Для более сложных серверов, например, на базе Nginx или Apache, изменение версии PHP может требовать настройки соответствующих конфигурационных файлов.
Не забывайте про тестирование. После смены версии PHP важно проверить сайт на наличие ошибок. Некоторые старые плагины или темы могут не работать корректно с новой версией, что приведет к сбоям. Также следует провести проверку совместимости на локальной машине перед обновлением на продакшн-сервере.
Как проверить текущую версию PHP на хостинге

Для того чтобы узнать, какая версия PHP используется на вашем хостинге, есть несколько способов. В зависимости от конфигурации вашего хостинга, вы можете выбрать наиболее удобный способ.
- Использование PHP-скрипта: Это самый универсальный способ. Создайте файл с расширением .php, например,
phpinfo.php, и вставьте в него следующий код:
Загрузите этот файл в корневую директорию вашего сайта и откройте его через браузер (например, http://yoursite.com/phpinfo.php). На странице будет отображена информация о текущей версии PHP, а также о других параметрах конфигурации.
- Через панель управления хостингом: Многие хостинги предоставляют возможность проверки версии PHP через свою панель управления, такую как cPanel, Plesk или аналогичные. Найдите раздел, связанный с настройками PHP, например, «PHP Version» или «PHP Selector». В этом разделе будет указана версия PHP, а также возможность сменить её.
- Через командную строку (если у вас есть доступ к SSH): Для серверов с доступом по SSH вы можете выполнить команду:
php -v
Эта команда выведет версию PHP, установленную на сервере. Поддержка SSH доступна не на всех хостингах, но этот метод будет полезен для VPS и выделенных серверов.
- Через системные утилиты хостинга: Некоторые хостинг-платформы позволяют узнать текущую версию PHP через консольные утилиты. Например, на хостингах, использующих систему управления сервером, такую как DirectAdmin, часто доступна команда для проверки версии PHP.
Выбор метода зависит от уровня доступа и настроек на вашем хостинге. При этом стоит помнить, что точность результата зависит от конфигурации сервера и наличия определённых инструментов.
Шаги для изменения версии PHP через панель управления хостингом

Для смены версии PHP через панель управления хостингом выполните следующие действия:
- Авторизуйтесь в панели управления хостингом (например, cPanel, Plesk, DirectAdmin).
- Найдите раздел с настройками PHP. Обычно это может быть «Select PHP Version» или «PHP Configuration».
- Перейдите в этот раздел и выберите нужную версию PHP из выпадающего списка.
- После выбора новой версии, нажмите на кнопку «Set as current» или аналогичную для применения изменений.
- Если требуется, настройте дополнительные параметры PHP, такие как лимит памяти или время выполнения скрипта, в соответствующих настройках.
- Подтвердите изменения и перезагрузите веб-сервер, если это необходимо (в большинстве случаев это происходит автоматически).
- Проверьте работоспособность сайта, убедившись, что все скрипты корректно работают на новой версии PHP.
Если у вас возникли проблемы с совместимостью версии PHP, рекомендуется сначала протестировать изменения на локальной копии сайта или в тестовом окружении.
Как изменить версию PHP через cPanel
Чтобы сменить версию PHP на сайте через cPanel, выполните несколько простых шагов. Важно отметить, что для доступа к панели управления cPanel необходимы соответствующие права администратора на хостинге.
1. Войдите в cPanel, используя ваш логин и пароль.
2. Найдите раздел «Software» (Программное обеспечение) и выберите «Select PHP Version» (Выбрать версию PHP).
3. На экране будет отображаться текущая версия PHP, а также список доступных для смены версий. Нажмите на выпадающее меню и выберите нужную версию из списка.
4. После выбора версии нажмите на кнопку «Set as current» (Установить как текущую). Это применит изменения к вашему сайту.
5. Если необходимо, можно активировать или деактивировать дополнительные модули PHP. Для этого на той же странице найдите раздел «PHP Extensions» (Расширения PHP) и поставьте или снимите галочки с нужных модулей.
6. После выполнения всех настроек сохраните изменения. Обычно это делается автоматически при смене версии PHP.
Важно: Некоторые старые скрипты или плагины могут не поддерживать новые версии PHP. Поэтому рекомендуется заранее протестировать сайт после смены версии, чтобы избежать возможных ошибок.
Как использовать .htaccess для смены версии PHP

Для смены версии PHP с помощью .htaccess необходимо использовать директивы, которые позволяют указать нужную версию на уровне директории. Обычно хостинг-провайдеры поддерживают несколько версий PHP, и они могут быть указаны с помощью префиксов или путей к интерпретатору PHP.
Основной синтаксис для смены версии PHP через .htaccess выглядит следующим образом:
AddHandler application/x-httpd-php72 .php
Здесь php72 – это версия PHP, которую вы хотите использовать (например, 7.2). Замените её на нужную версию, например, php74 для PHP 7.4 или php80 для PHP 8.0, в зависимости от того, что поддерживает ваш хостинг.
Другим способом является использование директивы SetEnv, если сервер поддерживает такие настройки. Пример:
SetEnv PHP_VERSION 7.2
Также, некоторые хостинг-платформы предоставляют возможность указания полного пути к интерпретатору PHP. Например, если ваш хостинг использует путь к PHP через определённую папку:
Action application/x-httpd-php /cgi-bin/php72
Важно помнить, что каждый хостинг-провайдер может иметь свои особенности в настройке .htaccess для работы с PHP. Поэтому перед применением конкретной директивы всегда следует ознакомиться с документацией хостинга. В случае возникновения проблем, например, если сайт перестал работать после изменения версии PHP, верните настройки обратно или свяжитесь с техподдержкой.
Кроме того, стоит отметить, что при использовании разных версий PHP могут возникнуть проблемы с совместимостью с устаревшими скриптами. Проверяйте работоспособность всех функций вашего сайта после изменения версии PHP и проводите тестирование на локальной копии перед применением на продакшн-сервере.
Проверка совместимости сайта с новой версией PHP

Перед обновлением PHP необходимо проанализировать код сайта на наличие устаревших функций, синтаксиса и расширений, удалённых или изменённых в новой версии. Используйте утилиту PHPCompatibility для статического анализа. Установите её через Composer:
composer require --dev phpcompatibility/php-compatibility
Запустите проверку с указанием нужной версии PHP:
./vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 8.2 ./
Обратите внимание на:
- Удалённые функции, например,
create_function(),each(),ereg(). - Изменения поведения функций, например,
implode()иstr_split(). - Устаревшие расширения, такие как
mcrypt,mysql_*иmagic_quotes. - Типизацию аргументов и возврата в новых версиях PHP, если используется строгая типизация.
Проверьте зависимости в composer.json. Обновите пакеты, несовместимые с новой версией PHP, командой:
composer update
Запустите проект в тестовой среде с новой версией PHP. Включите отображение всех уровней ошибок:
error_reporting(E_ALL); ini_set('display_errors', 1);
Проверьте все страницы, включая админку, AJAX-запросы и обработчики форм. Используйте журналы ошибок для выявления предупреждений и фатальных сбоев.
Как настроить версию PHP для разных директорий сайта

Чтобы указать разные версии PHP для отдельных директорий, используйте файл .htaccess или директивы в конфигурации виртуального хоста Apache. Для этого хостинг-провайдер должен поддерживать несколько версий PHP через CGI или FPM.
В случае использования .htaccess и Apache с CGI, добавьте в нужной директории следующее:
Action application/x-httpd-php81 /cgi-bin/php81
AddHandler application/x-httpd-php81 .php
Аналогично, в другой директории укажите:
Action application/x-httpd-php74 /cgi-bin/php74
AddHandler application/x-httpd-php74 .php
Пути к PHP-обработчикам могут отличаться в зависимости от структуры сервера. Уточните их у хостинг-провайдера.
При использовании Nginx с PHP-FPM настройка выполняется в блоке location внутри server. Например:
location /legacy/ {
root /var/www/site/legacy;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /modern/ {
root /var/www/site/modern;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
После изменения конфигурации перезапустите веб-сервер: sudo systemctl restart apache2 или sudo systemctl restart nginx.
Разделяйте директории логически – для разных версий CMS, фреймворков или устаревших разделов. Следите за безопасностью: старые версии PHP подвержены уязвимостям, используйте их только при острой необходимости.
Что делать, если сайт не работает после смены версии PHP

Сначала проверь логи ошибок сервера. На Apache это файл error_log, на Nginx – /var/log/nginx/error.log. В них часто содержатся конкретные строки с указанием файлов и строк кода, вызвавших сбой.
Если в логах указано, что отсутствует определённая функция, проверь включены ли необходимые модули PHP. Например, mbstring, pdo_mysql, gd могут быть отключены по умолчанию в новых сборках. Установи и активируй их с помощью php.ini или команды phpenmod.
Ошибки совместимости могут быть вызваны устаревшими конструкциями кода. Используй phpcompatinfo или PHPCompatibility для анализа кода и выявления несовместимых функций, например: create_function, each(), split(). Обнови код вручную или с помощью рекомендаций из официальной документации.
Если используется CMS, убедись, что установлена последняя версия. Например, старые версии WordPress, Joomla, MODX или 1С-Битрикс могут не поддерживать PHP 8.x. Обнови ядро, шаблоны и плагины через административную панель или вручную.
Проверь файл .htaccess. Старые директивы типа php_value могут быть несовместимы с современными конфигурациями. Удали или адаптируй их.
Если сайт использует Composer-зависимости, выполни composer update с нужной версией PHP, предварительно указав «platform» в composer.json. Это гарантирует корректную совместимость зависимостей с текущей версией интерпретатора.
При невозможности устранить ошибки – временно верни прежнюю версию PHP через панель управления хостингом или update-alternatives на сервере, затем планомерно адаптируй код.
