Швидкість, стабільність і безпека WordPress безпосередньо залежать від того, як налаштовано PHP на сервері. Особливо це критично під час роботи з плагінами безпеки, як-от BotBlocker. Усі ключові змінні задаються у файлі php.ini, панелі хостингу або іноді через .htaccess. Ось що важливо обов’язково перевірити й правильно виставити.
1. memory_limit
Максимальний обсяг пам’яті для одного скрипта.
- Приклад:
memory_limit = 256M - Мінімум для WordPress – 128M, оптимально – 256M+ (особливо для WooCommerce і великих сайтів).
2. max_execution_time
Максимальний час роботи скрипта (секунд).
- Приклад:
max_execution_time = 60 - Для великих операцій (імпорт, backup) – можна збільшити до 120.
3. max_input_time
Час на обробку вхідних даних (POST/GET/файли).
- Приклад:
max_input_time = 60 - Змінюється рідко, але для великих форм – до 120.
4. upload_max_filesize
Максимальний розмір одного завантажуваного файла.
- Приклад:
upload_max_filesize = 32M - Для завантаження великих медіа, тем чи резервних копій – збільште ліміт.
5. post_max_size
Максимальний загальний розмір POST-запиту.
- Приклад:
post_max_size = 32M - Завжди має бути ≥ upload_max_filesize.
6. file_uploads
Увімкнення/вимкнення завантаження файлів через PHP.
- Приклад:
file_uploads = On - Для WordPress має бути “On”!
7. max_file_uploads
Максимальна кількість файлів в одному завантаженні.
- Приклад:
max_file_uploads = 20 - Для масових завантажень зображень збільште ліміт.
8. default_charset
Кодування за замовчуванням.
- Приклад:
default_charset = "UTF-8" - Завжди “UTF-8” для WordPress.
9. display_errors / log_errors
Показ і журналювання помилок.
- У продакшені:
display_errors = Off - Журналювати:
log_errors = On, шлях до журналів – черезerror_log
10. session.save_path
Каталог для зберігання сесій PHP.
- Приклад:
session.save_path = "/tmp" - На навантажених сайтах – використовуйте швидкий диск, Redis або Memcached.
11. date.timezone
Часовий пояс для PHP.
- Приклад:
date.timezone = "Europe/Moscow" - Краще виставляти актуальний для вашої аудиторії та синхронізувати з WordPress.
12. opcache.enable
Увімкнення кешування байткоду PHP (прискорення).
- Приклад:
opcache.enable = 1 - Завжди вмикайте!
13. expose_php
Чи надсилати заголовок X-Powered-By (версія PHP).
- Приклад:
expose_php = Off - Завжди вимикайте для безпеки.
14. disable_functions
Вимкнення небезпечних PHP-функцій.
- Приклад:
disable_functions = exec,passthru,shell_exec,system - Знижує ризик злому.
Приклад конфігурації php.ini для WordPress + BotBlocker
memory_limit = 256M
max_execution_time = 60
max_input_time = 60
upload_max_filesize = 32M
post_max_size = 32M
file_uploads = On
max_file_uploads = 20
default_charset = "UTF-8"
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
session.save_path = "/tmp"
date.timezone = "Europe/Moscow"
opcache.enable = 1
expose_php = Off
disable_functions = exec,passthru,shell_exec,system
Як перевірити й змінити змінні?
- У WordPress: плагіни “Site Health”, “WP Server Info” покажуть поточні ліміти.
- У панелі хостингу (cPanel, ISPmanager, Plesk): зазвичай є розділ “PHP-параметри”.
- Через phpinfo(): створіть файл із
<?php phpinfo(); ?>і перегляньте всі значення.
Практика для WordPress і BotBlocker
- Для великих сайтів і WooCommerce – збільште ліміти пам’яті та часу роботи.
- Ніколи не вмикайте виведення помилок для відвідувачів – лише журналюйте.
- Увімкніть opcache – приріст швидкості помітний навіть на слабкому хостингу.
- Вимикайте небезпечні функції, якщо ваші плагіни їх не використовують.
Часті запитання
Чи потрібно перезапускати сервер після зміни php.ini?
Так, для FPM або Apache – перезапустіть відповідний сервіс.
Що робити при помилці “Allowed memory size exhausted”?
Збільшити memory_limit.
Не завантажуються великі файли?
Збільште upload_max_filesize і post_max_size.
