Перейти до вмісту

Ключові змінні налаштування PHP для WordPress і BotBlocker

Швидкість, стабільність і безпека 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.

Офіційна документація PHP (ini)

Веб-сервер Nginx

Порівняння Nginx і Apache