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

Змінні налаштування 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, приріст швидкості помітний навіть на слабкому хостингу.
  • Вимикайте небезпечні функції, якщо ваші плагіни їх не використовують.

Що це означає для BotBlocker

Перевірки BotBlocker виконуються рано, але їм потрібні пам’ять і час, як будь-якому коду. Якщо memory_limit стоїть 64M, важкий запит упаде з помилкою, і захист не спрацює.

Помилки PHP при увімкненому display_errors ламають JSON і заголовки. На робочому сайті вивід помилок вимикають, а журнал читають через error_log.

Часовий пояс впливає на записи в журналі плагіна: через розбіжність час подій не збігатиметься з часом у логах сервера.

Часті запитання

Чи потрібно перезапускати сервер після зміни php.ini?
Так, для FPM або Apache, перезапустіть відповідний сервіс.

Що робити при помилці «Allowed memory size exhausted»?
Збільшити memory_limit.

Не завантажуються великі файли?
Збільште upload_max_filesize і post_max_size.

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

Веб-сервер Nginx

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