Как установить разные версии PHP для разных сайтов на одном сервере в WordPress

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

Почему важно использовать разные версии PHP для сайтов на одном сервере

WordPress и его плагины постоянно развиваются, и некоторые из них могут требовать более новых версий PHP для корректной работы. В то же время, старые сайты могут быть несовместимы с новыми версиями PHP из-за устаревших функций. Использование одной версии PHP для всех сайтов на сервере может привести к проблемам с совместимостью, ошибкам и даже недоступности сайта.

Поэтому умение запускать разные сайты на разных версиях PHP позволяет обеспечить стабильность и безопасность каждого проекта.

Основные методы установки и переключения версий PHP на одном сервере

Существует несколько способов организовать работу с разными версиями PHP на одном сервере:

  • Использование менеджеров версий PHP: такие как phpenv или phpbrew, которые позволяют устанавливать и переключаться между версиями PHP через консоль.
  • Конфигурация веб-сервера: Apache или Nginx могут быть настроены так, чтобы для каждого виртуального хоста использовать свою версию PHP через FastCGI или PHP-FPM.
  • Использование Docker-контейнеров: каждый сайт запускается в отдельном контейнере с нужной версией PHP. Это более изолированный и современный способ.

Настройка разных версий PHP для сайтов на Apache с помощью PHP-FPM

Рассмотрим практический пример для Apache на Linux с использованием PHP-FPM. Предположим, у вас установлены PHP 7.4 и PHP 8.1.

Установка PHP-FPM для разных версий

На Ubuntu/Debian выполните:

sudo apt install php7.4-fpm php8.1-fpm

Убедитесь, что службы запущены:

sudo systemctl start php7.4-fpm
sudo systemctl start php8.1-fpm

Конфигурация виртуальных хостов Apache

Допустим, у вас есть два сайта: site1.example.com и site2.example.com, которым нужны разные версии PHP.

Для site1.example.com (PHP 7.4) конфигурация может выглядеть так:

<VirtualHost *:80>
    ServerName site1.example.com
    DocumentRoot /var/www/site1

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
    </FilesMatch>

    ErrorLog /var/log/apache2/site1-error.log
    CustomLog /var/log/apache2/site1-access.log combined
</VirtualHost>

Для site2.example.com (PHP 8.1):

<VirtualHost *:80>
    ServerName site2.example.com
    DocumentRoot /var/www/site2

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
    </FilesMatch>

    ErrorLog /var/log/apache2/site2-error.log
    CustomLog /var/log/apache2/site2-access.log combined
</VirtualHost>

После внесения изменений перезапустите Apache:

sudo systemctl reload apache2

Проверка версии PHP на сайте

Для проверки создайте в корне сайта файл phpinfo.php со следующим содержимым:

<?php
phpinfo();
?>

Откройте в браузере http://site1.example.com/phpinfo.php и http://site2.example.com/phpinfo.php — вы должны увидеть разные версии PHP.

Использование .htaccess для изменения версии PHP (ограничения)

Некоторые хостинги позволяют переключать версию PHP через .htaccess с помощью специальных директив, например:

AddHandler application/x-httpd-php74 .php

Однако этот метод зависит от настроек хостинга и не работает на всех серверах, особенно при использовании PHP-FPM.

Пример функции WordPress для проверки версии PHP и вывода предупреждения

Можно добавить в файл functions.php вашей темы или в плагин следующий код, который предупреждает администратора, если версия PHP ниже требуемой:

function wplite_check_php_version() {
    if (is_admin() && version_compare(PHP_VERSION, '7.4', '&lt')) {
        add_action('admin_notices', function() {
            echo '<div class="notice notice-error"&gt';
            echo '<p>Внимание: Ваш сервер использует устаревшую версию PHP (' . PHP_VERSION . '). Рекомендуется обновить минимум до PHP 7.4 для корректной работы сайта.</p>';
            echo '</div>';
        });
    }
}
add_action('init', 'wplite_check_php_version');

Рекомендации по использованию плагинов для управления версиями PHP

Хотя основная настройка версии PHP происходит на уровне сервера, существуют плагины, которые помогают выявлять проблемы совместимости, например:

  • Clearfy Pro — позволяет оптимизировать и обезопасить сайт, а также отследить несовместимости с версией PHP.
  • WPRemark — помогает анализировать логи и ошибки, связанные с версией PHP.

Итог: правильная настройка разных версий PHP для сайтов на одном сервере — важный навык для разработчика и администратора WordPress. Такой подход позволяет обеспечить максимальную совместимость, безопасность и производительность ваших проектов.

Как автоматически удалять старые изменения в постах WordPress
31.03.2026
Как создать собственный виджет в WordPress с поддержкой настроек
13.11.2025
Как создать динамический файл robots.txt в WordPress для улучшения SEO
01.02.2026
Как создать автоматические резервные копии WordPress: плагины и код
30.11.2025
Как использовать хук WooCommerce 'order status changed' для кастомной логики
20.05.2026