Як змінити PHP для окремого домену та підключити розширення

Адміністратор налаштовує версію PHP та розширення ionCube, mbstring і cURL для окремого домену
Налаштування окремої версії PHP і потрібних розширень через PHP Selector та файл .htaccess.
Зображення створено за допомогою генеративного ШІ OpenAI за редакційним задумом MIDITAUR.

На хостингу може виникнути ситуація, коли PHP Selector дозволяє змінювати версію PHP лише глобально для всього облікового запису. Після вибору окремого домену панель знову відкриває загальні налаштування, тому потрібна версія PHP для конкретного сайту не застосовується.

У такому разі версію PHP можна призначити в каталозі домену через файл .htaccess, а необхідні розширення активувати через PHP Selector.

У цій інструкції як приклад використовується ionCube Loader, але за таким самим принципом можна підключати й інші доступні розширення PHP.

Як змінити PHP для окремого домену

Відкрийте кореневу директорію потрібного домену або піддомену. Зазвичай у ній розташовані файл index.php, каталоги CMS і файл .htaccess.

Перед редагуванням створіть резервну копію .htaccess.

Для вибору версії PHP додайте правило:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-alt-php74
</FilesMatch>

У цьому прикладі для сайту призначається PHP 7.4.

Для PHP 8.2 правило може виглядати так:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-alt-php82
</FilesMatch>

Номер наприкінці обробника відповідає версії PHP:

alt-php74 — PHP 7.4
alt-php80 — PHP 8.0
alt-php81 — PHP 8.1
alt-php82 — PHP 8.2
alt-php83 — PHP 8.3

Правило діятиме в поточному каталозі та його підкаталогах. Інші сайти в обліковому записі не повинні змінити свою версію PHP.

Назва обробника залежить від конфігурації сервера. На різних хостингах можуть використовуватися Alt-PHP, LSAPI, PHP-FPM або інші механізми. Тому точне значення SetHandler бажано уточнити в технічній підтримці.

Як підключити розширення через PHP Selector

Після призначення версії PHP для домену можна перейти до підключення необхідних модулів.

Відкрийте PHP Selector і виконайте такі дії:

  1. Виберіть версію PHP, яка вказана у файлі .htaccess.
  2. Не застосовуйте її глобально, якщо не хочете змінювати PHP для всього облікового запису.
  3. Відкрийте список доступних розширень.
  4. Увімкніть потрібні модулі.
  5. Збережіть налаштування.

Важливо вибрати саме ту версію PHP, через яку працює потрібний домен. Розширення, активовані для PHP 8.2, можуть бути недоступними для сайту, який виконується через PHP 7.4.

ionCube Loader як приклад

ionCube Loader часто потрібен для запуску комерційних CMS, модулів і PHP-програм із закодованими файлами.

У списку розширень він може називатися: ioncube_loader  або: ioncube

Щоб підключити його:

  1. Виберіть потрібну версію PHP у PHP Selector.
  2. Знайдіть ionCube Loader у списку модулів.
  3. Установіть прапорець біля його назви.
  4. Збережіть налаштування.

Після цього ionCube має завантажуватися для вибраної версії PHP.

Які ще розширення можна підключати

У такий самий спосіб через PHP Selector можуть активуватися й інші модулі, якщо вони встановлені на сервері та доступні користувачеві.

Наприклад:

  • mbstring — робота з багатобайтовими кодуваннями та UTF-8;
  • intl — локалізація, формати дат, чисел і мов;
  • gd — обробка зображень;
  • imagick — розширена робота з графікою;
  • zip — створення та розпакування ZIP-архівів;
  • curl — HTTP-запити до зовнішніх серверів;
  • mysqli — підключення до MySQL;
  • pdo_mysql — робота з MySQL через PDO;
  • soap — підтримка SOAP-сервісів;
  • fileinfo — визначення типів файлів;
  • opcache — кешування скомпільованого PHP-коду.

Набір доступних розширень залежить від хостингу, версії PHP та серверної конфігурації.

Не всі модулі можна ввімкнути самостійно. Деякі розширення встановлюються або активуються лише адміністратором сервера.

Як перевірити версію PHP і розширення

Створіть у кореневій директорії домену тимчасовий файл phpinfo.php<?php phpinfo();

Відкрийте його в браузері: https://example.com/phpinfo.php

У верхній частині сторінки буде показано фактичну версію PHP.

Щоб перевірити певне розширення, натисніть Ctrl + F і введіть його назву, наприклад: ionCube mbstring curl intl

Якщо модуль активний, на сторінці буде окремий розділ із його параметрами.

Для точкової перевірки можна використати функцію extension_loaded():

<?php

echo extension_loaded('mbstring')
    ? 'Розширення підключено'
    : 'Розширення не знайдено';

Для ionCube Loader:

<?php

echo extension_loaded('ionCube Loader')
    ? 'ionCube Loader підключено'
    : 'ionCube Loader не знайдено';

Після перевірки файл phpinfo.php та інші тестові файли потрібно видалити. Вони можуть показувати технічну інформацію про сервер, яку не варто залишати у відкритому доступі.

Якщо розширення не підключилося

Якщо потрібний модуль не відображається, перевірте:

  • чи збігається версія PHP у .htaccess із вибраною версією в PHP Selector;
  • чи збережено зміни в PHP Selector;
  • чи доступне це розширення для потрібної версії PHP;
  • чи немає в .htaccess іншого правила SetHandler;
  • чи не використовує сайт окремий PHP-FPM або інший обробник;
  • чи не потрібне встановлення модуля адміністратором сервера.

Якщо після редагування .htaccess з’явилася помилка 500 Internal Server Error, видаліть додане правило або відновіть резервну копію файла.

Практичні поради

  • Завжди створюйте резервну копію .htaccess.
  • Додавайте правило лише в каталог потрібного домену.
  • Використовуйте обробник PHP, рекомендований хостингом.
  • Вибирайте в PHP Selector ту саму версію PHP.
  • Активуйте лише ті розширення, які потрібні сайту.
  • Перевіряйте результат через phpinfo().
  • Видаляйте діагностичні файли після тестування.
  • Не використовуйте застарілу версію PHP без необхідності.
  • Перевіряйте системні вимоги CMS перед зміною конфігурації.

Висновок

Якщо PHP Selector змінює версію PHP лише глобально, PHP для окремого домену можна призначити через файл .htaccess.

Після цього в PHP Selector потрібно вибрати ту саму версію PHP і активувати необхідні розширення. ionCube Loader є лише одним із можливих прикладів. За таким самим принципом можна підключити mbstring, intl, curl, zip, gd та інші доступні модулі.

Головне — узгодити версію PHP у .htaccess із версією, вибраною в PHP Selector, а потім перевірити фактичну конфігурацію безпосередньо на сайті.